从我写到 std::cout
时停止使用 std::endl
作为结束行到现在已经有很多年了,而是开始使用 "\n"
。
但是现在我开始看到更多使用 '\n'
的代码片段,我开始想知道什么可能是最好的。
除了显而易见的一个是字符串,另一个是字符之外,使用这种方法还有什么好处:
std::cout << variable << '\n';
在这方面:
std::cout << variable << "\n";
后期补充:
当我问这个问题时,我似乎认为换行 '\n'
刷新了缓冲区。现在我知道它 看情况。
默认情况下,std::cin
绑定到旧的 Cstdin
FILE*
流,而 std::cout
绑定到 stdout
。换行时的冲水就是这种打结的结果。默认情况下,如果连接到终端,stdout
是线路缓冲的。这意味着新行将刷新其缓冲区。因此,当使用 std::cout
打印换行时,将导致 stdout
被刷新。
如果 stdout
没有连接到终端(例如输出已经被重定向或管道连接) ,或者如果 std::cout
和 stdout
之间的连接被打破,那么换行将不会刷新任何内容。