rust - 如何在 Rust 中打印没有尾随换行符的输出?

标签 rust newline println

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/

相关文章:

bash - 在多个文件中添加缺少的换行符

java - 带有方法 toString() 的新类

oop - Rust 中的对象和类

rust - 如何在 Rust 中存储不变类型变量

rust - 如何告诉 Rust 编译器借用已经结束?

rust - rust 铸就 future 的沉沦

django - 如何使用 send_mail 和 django 在电子邮件中包含换行符?

powershell - 输出文件和回车

java - PrintWriter println(String s) 方法 :\r\n not supported?

java - 如果 PrintWriter.print 和 PrintWriter.println 之间有区别怎么办?