我有这段代码:
fn main() {
let mut stdin = io::stdin();
let input = &mut String::new();
loop {
input.clear();
print!("Your age: ");
stdin.read_line(input);
print!("{}", input);
}
}
因此,当我输入内容时,程序将返回"您的年龄:"加上我的意见。 但是当我运行程序时,我不想在新行中写入输入。 要在Python中做类似的事情,我可以写:
var = input("Your age: ")
如何避免换行?我确定它很简单,但我真的不知道该怎么做,我尝试了很多不同的东西......
答案 0 :(得分:3)
在阅读该行之前,您需要刷新stdout
:
use std::io::{self, Write};
fn main() {
let mut stdin = io::stdin();
let input = &mut String::new();
loop {
input.clear();
print!("Your age: ");
io::stdout().flush();
stdin.read_line(input);
print!("{}", input);
}
}
请注意,默认情况下,stdout经常是行缓冲的,因此可能需要使用
io::stdout().flush()
来确保立即发出输出。