Rust 中的宏 println!
总是在每个输出的末尾留下一个换行符。例如
println!("Enter the number : ");
io::stdin().read_line(&mut num);
给出输出
Enter the number :
56
我不希望用户输入 56
换行。我该怎么做?
最佳答案
它比乍看起来要复杂得多。其他答案提到了 print!
宏,但它并不是那么简单。您可能需要刷新标准输出,因为它可能不会立即写入屏幕。 flush()
是 std::io::Write
的一部分的特征方法,因此它需要在范围内才能工作(这是一个非常简单的早期错误)。
use std::io;
use std::io::Write; // <--- bring flush() into scope
fn main() {
println!("I'm picking a number between 1 and 100...");
print!("Enter a number: ");
io::stdout().flush().unwrap();
let mut val = String::new();
io::stdin().read_line(&mut val)
.expect("Error getting guess");
println!("You entered {}", val);
}
关于rust - 如何在 Rust 中打印没有尾随换行符的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531903/