私は次のようなファイルを開くことの違いを理解しようとしています:
_fstream *fileName*("FILE.dat",ios::binary);
_
または
_fstream *fileName*("FILE.dat",ios::out);
_
または
_fstream *fileName*("FILE.dat",ios::binary | ios::out);
_
これらの形式はすべて同一であることがわかりました。すべての場合において、ファイルの同じ出力は_*fileName*<<
_または*fileName*.write()
のいずれかを使用して生成されます。
ios::out
は書き込み用にファイルを開きます。
ios::binary
は、改行文字を\r\n
との間でオンザフライで変換せずに、データの読み取りまたは書き込みを確実にします。言い換えれば、あなたがストリームに与えるものは、まさに書かれているものです。
Ios :: binaryでファイルを開くと、改行文字の処理方法が制御されます。 Windowsでは、それらはCRLFペアに拡張されます。それだけです-operator <<のようなものがどのように機能するかに影響はありません。