Input 如何避免使用生锈的标准DIN去新生产线

Input 如何避免使用生锈的标准DIN去新生产线,input,rust,line,stdin,Input,Rust,Line,Stdin,我有以下代码: fn main() { let mut stdin = io::stdin(); let input = &mut String::new(); loop { input.clear(); print!("Your age: "); stdin.read_line(input); print!("{}", input); } } 所以当我输入一些东西时,程序会返回“你的年龄

我有以下代码:

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: ")

我怎样才能避免去新的线路?我相信这很简单,但我真的不知道如何做到这一点,我尝试了很多不同的东西…

在阅读这行之前,您需要刷新
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()
,以确保立即发出输出


请注意,使用
let mut input=String::new()可能更为惯用然后使用
stdin.read_行(&mut输入)。这有点冗长,但没有将临时文件绑定到引用那么奇怪。