【发布时间】:2011-10-17 00:03:13
【问题描述】:
我发现 Windows 命令行重定向会自动将 '\n' 替换为 '\r\n'。有什么方法可以避免这种情况吗?因为在 stdout 或 stderr 重定向之后,如果您将 '\r\n' 写入控制台,您将得到 '\r\r\n' 而不是 '\r\n'。
非常感谢!
你可以尝试一个简单的程序:
fprintf(stdout,"Hello, world!\r\n");
然后你用重定向运行它:
demo 1>demo.log
使用任何 HEX 编辑器,你会发现 '\r\n' 由 '\r\r\n' 表示。
更新:
@steve-jessop 我已经通过使用setmode 解决了这个问题,这将强制stdout 使用O_BINARY 模式。所以流不会将\n 翻译成\r\n。
非常感谢!
【问题讨论】:
标签: c++ windows command-line newline redirect