我在一些基本的I/O操作上遇到了一些问题。具体来说,在我输入我的名字并按Enter键之后,输出会在这之后显示文本“请输入您的姓名”:
use std::io;
fn main() {
print!("Please enter your name: ");
let mut name = String::new();
match io::stdin().read_line(&mut name) {
Ok(_) => println!(""),
Err(err) => println!("Could not parse input: {}", err)
}
println!("Hello, {}!", name.trim());
}
将会给出以下输出:
Compiling chat v0.1.0 (file:///home/marcus/dev/rust/chat)
Running `target/debug/chat`
marcus
Please enter your name:
Hello, marcus!
当我输入第一个 "marcus" 时,为什么程序没有在等待输入之前打印 "请输入你的名字"?
如果一个返回的 Result
是 Ok
,有可能什么也不做吗?在这个例子中,Ok()
意味着我已经将输入保存在变量 name 中。这很好。但在这种情况下,我该如何处理 Ok() =>
?
if let Err(err) = io::stdin().read_line(&mut name) { println!("Could not parse input: {}", err); }
。 - Veedrac