fwrite()は任意のバイナリデータをstreamに書き込むライブラリ関数だと理解していましたが、今更ながらstreamがテキストモードの場合、任意文字列を書き込むものだと知りました。具体的にはバイナリデータを文字列と見なし、その中からNL(0x0A)をCR-LF(0x0D-0x0A)に置き換えられてはまりました。
テキストとバイナリを混在させたstreamの場合、その都度モードを切り替える必要があるそうです。
FILE* stream;
_setmode( _fileno( stream ), _O_BINARY );
0 件のコメント:
コメントを投稿