此函數包含在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函數復位錯誤標志。
新聞熱點
疑難解答