linux — C ++ ofstream, печать без CRLF

У меня есть код C ++, который я запускаю в Linux с Wine. Я думаю, что это на самом деле часть проблемы.

Обычно, когда я делаю что-то подобное в родной программе Linux C ++:

ofstream fout;
fout.open("myfile.txt")
fout<<"blah blah"<<endl;
fout<<"blah blah 2"<<endl;
fout.close;

Файл представляет собой стандартный текст ASCII. Однако в коде I, работающем под Wine, myfile.txt теперь представляет собой текст ASCII с разделителями строк CRLF.

Это проблема, потому что, если я хочу прочитать файл с использованием собственного кода Linux C ++, работающего на той же машине, терминаторы строки CRLF действительно сильно мешают обработке и анализу файлов.

Есть ли способ заставить код, работающий под Wine, выводить файлы без разделителей строк CRLF и таким образом, чтобы я мог читать его, используя собственный код Linux C ++ на той же машине?

1

Решение

Вы можете открыть файл в ios::binary Режим. Строго говоря, это не означает, что это двоичный файл [любой другой текст является «текстовым», поскольку все файлы являются двоичными]. Двоичный в этом контексте означает просто: «Не копайтесь в материалах внутри файла, интерпретируя символы как специальные, добавляйте или удаляйте любые символы и т. Д.».

Или когда вы копируете файл в Linux, используйте dos2unix myfile.txt преобразовать его из формата «dos» (и Windows) в текстовый файл в стиле «unix».

2

Другие решения

Других решений пока нет …