可能重复:
what does std::endl represent exactly on each platform?
我试图弄清楚std :: endl是否会返回\r\n
,\n
或\r
,具体取决于平台,或者它是否始终坚持使用。< / p>
答案 0 :(得分:13)
std::endl
只是'\n' << std::flush
的“简写”。它不依赖于平台。
但是,'\n'
本身在每个平台上的处理方式不同,如果流已打开,则会被'\r\n'
,'\n'
或'\r'
(或类似内容)替换为{{1}}在文字模式下。
答案 1 :(得分:2)
'\ n'输出换行符(在适当的平台特定表示中,因此它在Windows上生成“\ r \ n”)。 std :: endl做同样的事情并刷新它。
使用'\ n'代替std :: endl;尝试输出换行符时,但在尝试刷新时使用std::endl
。不必要的刷新会降低应用程序的性能,因为我们知道文件i / o是除了用户i / o之外最慢的操作之一。