有没有办法根据所使用的操作系统自动使用正确的 EOL 字符?
我在想类似的事情std::eol
?
我知道使用预处理器指令非常容易,但很好奇它是否已经可用。
我感兴趣的是,我的应用程序中通常有一些消息,稍后我会将这些消息组合成一个字符串,并且我希望将它们用 EOL 分隔开。我知道我可以使用std::stringstream << endl
但有时它似乎比常规附加更矫枉过正。
std::endl
被定义为除了写之外不执行任何操作'\n'
到流并刷新它(§27.6.2.7)。冲洗被定义为不执行任何操作stringstream
,所以你只剩下一个漂亮的说法mystringstream << '\n'
。您的操作系统上的标准库实现会转换\n
适当地,所以这不是你关心的。
Thus endl
已经是终极的性能和便携性,你唯一想要的就是<< '\n'
如果您尝试有效地写入文件(而不是字符串流)。出色地,<< '\n'
也消除了无意义的虚拟调用stringbuf::flush
。除非分析表明空函数调用需要时间,否则不要考虑它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)