gpt4 book ai didi

c++ - 更改 std::endl 以输出 CR+LF 而不是 LF

转载 作者:IT王子 更新时间:2023-10-29 00:02:53 34 4
gpt4 key购买 nike

我正在 Linux 平台上编写一个程序,该程序生成的文本文件将不可避免地在 Windows 平台上查看。

现在,将 std::endl 传递到 ostream 中仅为换行符生成 CR 字符。当然,这些文本文件在 MS 记事本中看起来是错误的。

  1. 有没有办法更改 std::endl,使其使用 CR+LF 作为换行符而不是 LF?
  2. 我知道我可以编写自己的自定义操纵器,例如 win_endl,用于生成我自己的换行符,但我在很多地方使用了 std::endl 符号和许多程序员一样,倾向于做需要尽可能少的工作的事情。我可以简单地重载 std::endl 来生成 CR+LF,还是为了可维护性这是一个愚蠢的想法?

注意:我查看了 this question ,但它问的是另一条路,接受的答案似乎相当不完整。

最佳答案

std::endl 基本上是:

std::cout << "\n" << std::flush;

因此只需使用 "\r\n" 并省略刷新。这样也更快!

来自endl上的ostream头文件:

This manipulator is often mistakenly used when a simple newline is desired, leading to poor buffering performance.

关于c++ - 更改 std::endl 以输出 CR+LF 而不是 LF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1651936/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com