8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

print! 宏直到按下 Enter 键才执行

Jeyan 1月前

15 0

我正在研究 Rust,在玩猜谜游戏时,我发现了这种奇怪的行为:use std::io;fn main() { println!(\'Welcome!\'); let mut input = String::new(); print!(\'

我正在研究 Rust,在玩 猜谜游戏 我发现了这种奇怪的行为:

use std::io;

fn main() {
    println!("Welcome!");

    let mut input = String::new();
    print!("Please type something:"); // this line is not printed UNTIL the Enter key is pressed
    io::stdin()
        .read_line(&mut input)
        .expect("Failed to read input!");

    println!("Bye!");
}

发生以下情况:

  1. Welcome! 打印
  2. Please type something: 未打印
  3. 如果你输入一些文本并按 Enter 键,你会看到你的文本后面跟着 Please type something:Bye!

如何将消息打印到标准输出并将输入打印在同一行上?

例如:

Please enter your name:
(user types Chuck Norris)
Please enter your name: Chuck Norris
帖子版权声明 1、本帖标题:print! 宏直到按下 Enter 键才执行
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Jeyan在本站《parsing》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @tadman 确实我可以“打印!(\'Something\n\')但随后 \n 被打印。

  • 的文档 std::print :

    请注意,stdout 默认经常是行缓冲的,因此可能需要使用 io::stdout().flush() 来确保立即发出输出。

    因此看起来您需要导入 std::io::Write 并调用 io::stdout().flush() .

返回
作者最近主题: