3

可能重复:
std::endl 在每个平台上究竟代表什么?

我试图弄清楚 std::endl 是否返回\r\n,\n\r取决于平台,或者它是否一直坚持下去。

4

2 回答 2

13

std::endl只是 . 的“简写” '\n' << std::flush。它不依赖于平台。

但是,如果流以文本模式打开,则'\n'其本身在每个平台上的处理方式不同,并且会被替换为'\r\n', '\n', or '\r'(或类似的东西)。

于 2013-01-21T20:02:36.163 回答
2

'\n' 输出一个换行符(在适当的平台特定表示中,因此它在 Windows 上生成一个“\r\n”)。std::endl 做同样的事情并刷新它。

使用 '\n' 代替 std::endl; 尝试输出换行符时,但std::endl在尝试刷新时使用。不必要的刷新会降低应用程序的性能,因为我们都知道文件 i/o 是除用户 i/o 之外最慢的操作之一。

于 2013-01-21T20:09:02.713 回答