C语言文件输入输出错误检测,仅仅是照搬谭浩强书上的,便于以后查阅

来源:互联网 发布:excel 数据截断 编辑:程序博客网 时间:2024/06/05 18:19
  

1.判断文件是否打开成功:

    判断文件是否打开成功可用fopen的返回值if((fp=fopen("filename","r"))==NULL)则打开失败。

 

2.判断文件是否结束:

判断ASCII文件是否结束fgetc()会返回结束标志EOF(即-1)由于二进制文件数据会出现-1所以必须用函数feof(fp)判断,feof(fp)==1则已结束。所以读入一个文件可以while(!feof(fp)){c=fgetc(in); ...}


3.ferror()
在调用各种输入输出函数时,如果出现错位,除了函数返回值有所反映外,还可以用ferror函数检查。调用形式为ferror(fp);
如果ferror(fp)的返回值为0,表示未出错;出错则返回非0值。
对同一个文件每一次调用输入输出函数,均产生一个新的ferror函数值,因此,应当在调用一个输入输出函数后立即检查ferror函数的返回值,否则信息丢失。
    在执行fopen函数时,ferror函数的初始值自动置为0;

 

4.clearerr()
clearerr(fp)的作用是使文件错误标志和文件结束标志置为0.假如在调用一个输入输出函数时出现错误,ferror函数值为一个非0值。在调用clearerr(fp)后,ferrer(fp)的值变为0.
 只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数或任何其他一个输入输出函数