此函数包含在stdio.h头文件中,主要是用来复位错误标志。
函数原型:void clearerr(FILE *fp);
函数功能:复位错误标志,即:使fp所指向的文件中的错误标志和文件结束标志置0。当输入输出函数对文件进行读写出错时,文件就会自动产生错误标志,这样会影响程序对文件的后续操作。clearerr函数就是要复位这些错误标志,也就是使fp所指向的文件的错误标志和文件结束标志置0,从而使文件恢复正常。
返回值:没有返回值。
下面给出一个程序范例来演示该函数的使用方法。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
FILE *in, *out;
char ch;
if((in=fopen("inFile.txt", "rb")) == NULL) {
printf("Cannot open input file./n");
exit(1);
}
if((out=fopen("outFile.txt", "wb")) == NULL) {
printf("Cannot open output file./n");
exit(1);
}
while(!feof(in)) {
ch = getc(in);
if(ferror(in)) {
printf("Read Error");
clearerr(in);
break;
} else {
if(!feof(in))
putc(ch, out);
if(ferror(out)) {
printf("Write Error");
clearerr(out);
break;
}
}
}
fclose(in);
fclose(out);
return 0;
}
注意:ferror函数与clearerr函数应该配合使用。也就是说,通过ferror函数检测出文件有错误标志后要用clearerr函数复位错误标志。
新闻热点
疑难解答