0

我目前正在开发一个简单的“用户输入”程序。用户可以输入一个数字,我用 std::io::stdin().read_line(&mut let_name_here).ok().expect("Error");. 获得用户输入后,我想将其打印到控制台以供查看。

我注意到 println! 中的奇怪行为!宏。以下代码

println!("Your input: {}", let_name_here);
println!("Your input: {}", let_name_here);

输出这个:

Your input: 15

Your input: 15

为什么marco中有多余\n的东西。println!根据我的编码经验,我会假设以下内容:

Your input: 15
Your input: 15

但要实现此输出,我必须使用以下代码:

print!("Your input: {}", let_name_here);
print!("Your input: {}", let_name_here);

我不明白为什么println!marco 输出\n两次。我会怎么做,如果我想\n在第一行的末尾,用这两个马科斯是不可能的。我错过了什么重要的东西吗?

4

1 回答 1

0

看起来您从标准输入读取的字符串末尾有一个换行符。然后 println 宏在末尾添加一个换行符,从而产生两个换行符。

您应该从从标准输入读取的文本末尾删除换行符,或者如果您不想这样做,则只使用 print。

于 2019-09-21T10:48:15.023 回答