0

我使用 fread 读入一个字符缓冲区。

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

我从中读取的文件恰好包含单词Hello,即 5 个字节。在上面的例子中,nbytes等于 6。为什么?

此外,从零字节文件(即它是空的)读取返回 0。

4

1 回答 1

4

我的猜测是,无论写入到您正在阅读的文件中的任何内容,都包含换行符(如果它是文本文件)或字符串后的 0 字节。如果您使用的是 unix,请运行以下命令:

od -c filename

这将打印文件的全部内容,包括不可打印的内容。

您还可以运行:

wc --bytes filename

它将以字节为单位打印文件的长度(连同文件名)。

于 2012-06-27T19:35:00.237 回答