2017-08-23 4 views
1

ファイルにバイトを書き込んでという名前で保存して.midファイルを作成しました。私はそれを実行することができ、それは動作しますが、いくつかの特殊なケースがあります。私は\n(ASCII 10)を含むバイトを記述する場合.midファイルを作成する: ' n'を書き込むと ' r n'が発生するWindows

それが代わりに.midが実行可能ではない可能2バイト\r\nを、書きます。これはWindowsマシンでは普通ですが、私の場合は望ましくありません。\nで表されるキーを選択すると、\nと書くことができます。

\nではなく、\r\nと書かれた回避策がありますか、Windowsマシンで書き込まれたバイトがASCII 10であることを確認する別の方法はありますか?

ありがとうございます!

+0

バイトを書き込むためにどのようなコードを使用していますか? – edtheprogrammerguy

+2

バイナリモードでファイルを開くだけです 'fopen(" file.out "、" wb ")'改行を避ける –

答えて

4

linux/unixでは、ファイルを作成するのに"wb"または"w"を指定するかどうかは関係ありません。

が、Windowsでfopenを使用してテキストファイルを作成すると、すべての\n\r\nに変換されることを意味するので、あなたはバイナリファイルを作成するには、このを使用している場合、いくつかのバイトが値である場合は、バイナリファイル」は「壊れて」となりますfopen("file.bin","wb")シンプルなソリューション:バイナリファイルを作成するときは、すべてのプラットフォームで常にコードを移植できるように、常にfopen("file.bin","wb")を使用してください。

関連する問題