嘿,我很新于Rust和编程,我遇到了一些以前没有遇到过的问题。我尝试将用户输入变量的结果返回到屏幕上,但似乎一直没有成功,这是在外部嵌套之外的。
use std::{thread, time::Duration};
fn main(){
let mut modifer = 0;
let mut ModValue=0;
let mut ModReason = "";
let Y = "Y";
let y = "y";
let N = "N";
let n = "n";
print!("{esc}c", esc = 27 as char);
let mut ModYN = String::new();
println!("Are there any modifiers (Y/N)");
std::io::stdin().read_line(&mut ModYN).unwrap();
let ModYN = ModYN.trim();
if ModYN == y || ModYN == Y{
ModValue = 1;
print!("{esc}c", esc = 27 as char);
let mut modifer:f32=0.0;
let mut input = String::new();
//I'm attempting to get the input from the user to define a modifer reason and value
println!("Please enter the modifer: ");
std::io::stdin().read_line(&mut input).expect("Not a valid string");
modifer = input.trim().parse().expect("Not a valid number");
let mut ModReason = String::new();
println!("Whats the modifer reason: ");
std::io::stdin().read_line(&mut ModReason).unwrap();
let ModReason = ModReason.trim();
}
//Then print those results to the screen outside of nesting
print!("{esc}c", esc = 27 as char);
println!("-Modifer-");
println!("{}",&mut modifer);
println!("-Modifer Reason-");
println!("{}",&mut ModReason);
thread::sleep(Duration::from_secs(5));
}
我尝试了许多方法,包括将其分配为可变的或者借用变量本身,甚至扩展嵌套超过打印结果。但我遇到了难题,真的需要一些帮助。
let
声明一个变量,稍后需要使用=
来赋值。可以将let mut ModReason = String::new()
放在let
块之前,并使用ModReason = ModReason.trim().to_string()
进行赋值(因为trim()
返回&str
,你需要拥有一个字符串) 。 - user4815162342