0

freadを使用してcharバッファーに読み込みます。

char buffer[50];
int nbytes = fread(buffer, 1, 50, fp);

私が読んだファイルには、Helloという単語、つまり5バイトが含まれています。上記の例では、 nbytes6に等しくなります。なぜですか?

さらに、ゼロバイトのファイル(つまり空のファイル)から読み取ると、0が返されます。

4

1 に答える 1

4

私の推測では、あなたが読んでいるファイルに書き込まれたものは何でも、文字列の後に改行 (テキスト ファイルの場合) または 0 バイトが含まれていると思います。UNIX を使用している場合は、次のコマンドを実行します。

od -c filename

印刷できないものを含むファイルの内容全体を印刷します。

次を実行することもできます。

wc --bytes filename

ファイルの長さをバイト単位で出力します(ファイル名とともに)。

于 2012-06-27T19:35:00.237 に答える