首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rust println!问题- println宏内的奇怪行为

Rust println!问题- println宏内的奇怪行为
EN

Stack Overflow用户
提问于 2019-09-21 18:31:35
回答 1查看 302关注 0票数 0

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

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

代码语言:javascript
复制
println!("Your input: {}", let_name_here);
println!("Your input: {}", let_name_here);

输出如下:

代码语言:javascript
复制
Your input: 15

Your input: 15

为什么在println!中有一个额外的\n。根据我的编码经验,我会假设以下几点:

代码语言:javascript
复制
Your input: 15
Your input: 15

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

代码语言:javascript
复制
print!("Your input: {}", let_name_here);
print!("Your input: {}", let_name_here);

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

EN

回答 1

Stack Overflow用户

发布于 2019-09-21 18:48:15

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

您应该去掉从stdin读取的文本末尾的换行符,或者如果您不想这样做,只需使用print。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58039413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档