示例C ++程序:
#include <iostream>
#include <fstream>
int main(int argc, char* argv[]) {
if (argc > 1) {
std::ofstream output(argv[1]);
output << "Line 1\nLine 2\n" << std::flush;
} else {
std::cout << "Line 1\nLine 2\n" << std::flush;
}
}
直接输出(Windows 7):
TestProgram.exe direct.txt
产量
Line 1[LF]
Line 2[LF]
重定向输出:
Testprogram.exe >redir.txt
产量
Line 1[CR][LF]
Line 2[CR][LF]
cout
?安慰?中间某个地方?为什么?binary
上设置std::cout
标记,但这并没有改变任何内容。ETA: 使用echo +重定向我可以使用
将LF字符发送到文件echo line 1◙line 2 >echo.txt
(使用键盘上的Alt-10制作LF字符)。所以它似乎是一个C ++问题。