У меня есть код 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 ++ на той же машине?
Вы можете открыть файл в ios::binary
Режим. Строго говоря, это не означает, что это двоичный файл [любой другой текст является «текстовым», поскольку все файлы являются двоичными]. Двоичный в этом контексте означает просто: «Не копайтесь в материалах внутри файла, интерпретируя символы как специальные, добавляйте или удаляйте любые символы и т. Д.».
Или когда вы копируете файл в Linux, используйте dos2unix myfile.txt
преобразовать его из формата «dos» (и Windows) в текстовый файл в стиле «unix».
Других решений пока нет …