提问人:Bullfrog Beats 提问时间:8/13/2022 更新时间:8/13/2022 访问量:523
程序结束时 C++ 控制台输出未切换到新行 [复制]
C++ console output not switching to a new line when the program ends [duplicate]
问:
所以我才刚刚开始学习C++,我只是想把一切都准备好。当我为 hello world 代码运行编译的二进制文件时,它显示控制台输出,但之后不会切换到新行。下面是一个示例:
Hello, World!michaela@michaela-HP-Laptop-17-by4xxx: $
我尝试研究,但我找不到一个好的解决方案。我在 Ubuntu 20.04 上,并使用 BASH shell。如果有任何帮助,我将提供代码,尽管我对此表示怀疑,因为它实际上只是输出“Hello, World!”。
#include <iostream>
int main(){
std::cout << "Hello, World!";
return 0;
}
答:
3赞
chouayb belhizia
8/13/2022
#1
试试这个:
std::cout << "Hello, World!"<<std::endl;
或者你可以使用这个:
std::cout << "Hello, World!\n";
和 之间的唯一区别是添加(刷新输出流),这通常是完全不必要的,并且会使程序变慢。std::endl
\n
std::endl
std::flush
评论
0赞
Pete Becker
8/13/2022
在这种情况下,刷新也是多余的。正常终止(例如,从刷新返回所有输出流。 +1.main
0赞
davolfman
8/13/2022
我以为还在系统上添加了回车,这对换行符来说是正常的。std::endl
5赞
davolfman
8/13/2022
#2
对于大多数编程语言来说,这是完全正常的,尤其是在 Unix 环境中。如果您使用 或 ,即使是 shell 脚本也会在没有换行符的情况下打印。而且,由于终端模拟了旧的类似电传打字机的打印机系统,光标不会仅仅因为程序退出而重置。printf
echo -n
如果您想要换行符,请在字符串中添加 a,或在文本后输出 a。'\n'
std::endl
评论
std::cout << "Hello, World!\n";