0

unsigned charバッファをファイルに書き込んでいます (C++):

FILE* f = fopen("out.data","wb");
size_t count = fwrite((const void *)pBuf, sizeof(unsigned char), dl, f);

私がそれを読むと、私が期待する「dl」よりも多くのバイトを取得します。誰でも理由を知っていますか?原因が「fopen(...,"w")」ではなく「fopen(...,"w")」であるという同様の質問がありました。

何か関係がある場合は、Matlab を使用してファイルを読み取りました (Matlab の fopen で「r」と「rb」の両方を試しました)。

ありがとう !

4

1 に答える 1

0

大丈夫!簡潔な質問です。これが私の最善の策です。

  • dl変数の値は何ですか?
  • 何によって指されているpBufか - 論理的に何バイトを参照していますか?
  • 戻り値は確認しましたか?書き込まれた要素の数を返します。この場合はバイトになります。
  • ファイルを閉じた後、ディスク上のファイルのサイズではなく、ファイルの実際のサイズを確認しましたか?および/またはと一致しますか?dlcount
  • どのようにファイルを開いて内容を後で読み、テキスト モードまたはバイナリ モードで読みましたか。

PS: より表現力豊かになり、より多くの単語を使用して、質問に関連するようにしてください。

于 2012-08-13T15:37:50.203 に答える