在下面的代码中,当用户输入“q”时,我希望打印消息“哇”,但事实并非如此。
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input)
.expect("failed to read line");
if input == "q" {
println!("wow") ;
}
}
为什么邮件没有按预期打印?
答案 0 :(得分:5)
您的输入字符串包含尾随换行符。使用trim
将其删除:
use std::io;
fn main() {
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("failed to read line");
if input.trim() == "q" {
println!("wow") ;
}
}
您可以通过打印输入值
自行查看println!("{:?}", input);
$ ./foo
q
"q\n"