#define MAXSIZE 256
fread(buff, sizeof(MAXSIZE), 1, infp);
最多说我们需要阅读3次,阅读2次后,infp
中剩余的内容小于MAXSIZE
。我们如何确定上次阅读时的信息大小?
答案 0 :(得分:5)
您只需检查fread()
的返回值:
返回值
成功读取的对象数,如果出现错误或文件结束条件,则可能少于计数。
像这样:
size_t num = fread(...);
P.S。:,如@chux所述,您实际上需要使用fread(buff, MAXSIZE, 1, infp)
。
答案 1 :(得分:1)
来自fread
手册页
成功时,fread()和fwrite()返回读取或写入的项目数。此数字等于仅在大小为1时传输的字节数。如果发生错误或达到文件末尾,则返回值为短项目计数(或零)。 fread()不区分文件结束和错误,并且调用者必须使用feof(3)和ferror(3)来确定发生了什么。