ビットマップ画像を生成するプログラムを書いています。テスト中に、C++ が余分なバイトを (一見ランダムな場所に) 書き込んでいるため、すべてのバイトがオフセットされていることがわかりました (その後、画像が台無しになりました)。配列からファイルに書き込みます。配列の完全な内容を計算すると、それらは完璧ですが、余分なバイトが常に書き込まれます。これは、ios::binary フラグを指定してファイルを開くことで修正されました。
まったく同じ配列から出力している場合、ios::binary フラグの有無にかかわらずファイルを開くことが問題になるのはなぜですか。
Code::Blocks 12.11 の使用、C++0X のデフォルト コンパイラ