我目前正在开发一个简单的“用户输入”程序。用户可以输入一个我得到的数字
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
为什么\n
的marco中有额外的println!
。根据我的编码经验,我会假设以下内容:
Your input: 15
Your input: 15
但是要获得此输出,我必须使用以下代码:
print!("Your input: {}", let_name_here);
print!("Your input: {}", let_name_here);
我不明白为什么println!
marco输出两次\n
。如果我想在第一行的结尾处\n
,使用这两个马科斯怎么办,那将是不可能的。我错过了重要的东西吗?
答案 0 :(得分:0)
从stdin读取的字符串的末尾似乎有一个换行符。然后,println宏将换行符添加到末尾,从而产生两个换行符。
您应该在从stdin读取的文本的末尾删除换行符,或者如果不想这样做,请仅使用print。