|
调用fread读取数据时,如果返回值小于参数nmemb所指定的值,表示发生了错误或者已经到了文件末尾(end-of-file),但fread无法具体确定是哪一种情况。在这种情况下,可以通过判断错误标志或end-of-file标志来确定具体的情况。 1.feof 用于检查stream所指文件的end-of-file标志是否存在。 1)头文件 #include 2)函数原型 int feof(FILE *stream); 3)参数 stream:表示指定的文件。 4)返回值 如果返回一个非零值,表示设置了end-of-file标志;如果end-of-file未设置,则返回0。 2.ferror 用于检查stream所指文件的错误标志是否存在。 1)头文件 #include 2)函数原型 int ferror(FILE *stream); 3)参数 stream:要读取的文件。 4)返回值 如果返回一个非零值,表示设置了错误标志;如果错误未设置,则返回0。 3.clearerr 用于清除end-of-file和错误标志,当调用feof或ferror校验这些标志后,通常需要清除这些标志,避免下次校验时使用到的是上一次设置的值,此时可以手动调用clearerr函数清除标志。 1)头文件 #include 2)函数原型 void clearerr(FILE *stream); 3)参数 stream:要读取的文件。 4)返回值 无。
|