web-dev-qa-db-ja.com

ios :: binaryまたはios :: out、あるいはその両方でファイルを開くことの違いは何ですか?

私は次のようなファイルを開くことの違いを理解しようとしています:

_fstream *fileName*("FILE.dat",ios::binary);
_

または

_fstream *fileName*("FILE.dat",ios::out);
_

または

_fstream *fileName*("FILE.dat",ios::binary | ios::out);
_

これらの形式はすべて同一であることがわかりました。すべての場合において、ファイルの同じ出力は_*fileName*<<_または*fileName*.write()のいずれかを使用して生成されます。

20
Alan_AI

ios::outは書き込み用にファイルを開きます。

ios::binaryは、改行文字を\r\nとの間でオンザフライで変換せずに、データの読み取りまたは書き込みを確実にします。言い換えれば、あなたがストリームに与えるものは、まさに書かれているものです。

24
Nick Bedford

Ios :: binaryでファイルを開くと、改行文字の処理方法が制御されます。 Windowsでは、それらはCRLFペアに拡張されます。それだけです-operator <<のようなものがどのように機能するかに影響はありません。

5
anon