Пример программы на 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 + redirection, я могу отправить символ LF в файл, используя
echo line 1◙line 2 >echo.txt
(где символ LF сделан с Alt-10 на клавиатуре). Так что, похоже, это проблема C ++.
Задача ещё не решена.