1

Linuxでwineを使用して実行しているC++コードがあります。これは実際には問題の一部だと思います。

通常、ネイティブの Linux C++ プログラムで次のようなことを行うと、次のようになります。

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

ファイルは標準の ASCII テキストです。ただし、wine で実行しているコードでは、myfile.txt は CRLF 行終端記号を含む ASCII テキストになりました。

これは問題です。同じマシンで実行されているネイティブの Linux C++ コードを使用してファイルを読みたい場合、CRLF 行ターミネータが多くのファイル処理と解析を混乱させるからです。

ワインの下でコードを実行して、CRLF行ターミネータなしでファイルを出力し、同じマシンでネイティブのLinux C++コードを使用して読み取ることができる方法はありますか?

4

1 に答える 1

2

モードでファイルを開くことができios::binaryます。これは、厳密に言えば、それがバイナリ ファイルであることを意味するわけではありません [すべてのファイルがバイナリであるため、他のどのファイルよりも「テキスト」です]。このコンテキストでのバイナリとは、「文字を特別なものとして解釈したり、文字を追加または削除したりして、ファイル内のものをいじらないでください.

または、ファイルを Linux にコピーするときにdos2unix myfile.txt、「dos」(および Windows) 形式から「unix」形式のテキスト ファイルに変換するために使用します。

于 2013-05-30T19:30:19.343 に答える