我正在 Linux 平台上编写一个程序,该程序生成文本文件,这些文本文件不可避免地会在 Windows 平台上查看。
此刻,路过std::endl
into a ostream
仅为换行符生成 CR 字符。当然,这些文本文件在 MS 记事本中看起来是错误的。
- 有办法改变吗
std::endl
这样它使用 CR+LF 换行而不是 LF 吗?
- 我知道我可以编写自己的自定义操纵器,例如
win_endl
,用于生成我自己的换行符,但我使用std::endl
符号在很多地方都有使用,并且像许多程序员一样,倾向于做需要最少工作的事情。我可以简单地超载吗std::endl
产生 CR+LF,或者这对于可维护性来说是一个愚蠢的想法?
注意:我签出了这个问题 https://stackoverflow.com/questions/1535922/c-change-newline-from-crlf-to-lf,但它询问的是另一种方式,并且接受的答案似乎相当不完整。
std::endl
基本上是:
std::cout << "\n" << std::flush;
所以只需使用"\r\n"
相反并省略冲洗。这样也更快!
来自 endl 上的 ostream 头文件:
当需要简单的换行符时,经常会错误地使用该操纵器,从而导致缓冲性能不佳。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)