std :: endl的值是否依赖于操作系统?

时间:2013-01-21 20:00:39

标签: c++ std

  

可能重复:
  what does std::endl represent exactly on each platform?

我试图弄清楚std :: endl是否会返回\r\n\n\r,具体取决于平台,或者它是否始终坚持使用。< / p>

2 个答案:

答案 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之外最慢的操作之一。