此函數(shù)包含在stdio.h頭文件中,主要是用來復(fù)位錯誤標(biāo)志。
函數(shù)原型:void clearerr(FILE *fp);
函數(shù)功能:復(fù)位錯誤標(biāo)志,即:使fp所指向的文件中的錯誤標(biāo)志和文件結(jié)束標(biāo)志置0。當(dāng)輸入輸出函數(shù)對文件進(jìn)行讀寫出錯時,文件就會自動產(chǎn)生錯誤標(biāo)志,這樣會影響程序?qū)ξ募暮罄m(xù)操作。clearerr函數(shù)就是要復(fù)位這些錯誤標(biāo)志,也就是使fp所指向的文件的錯誤標(biāo)志和文件結(jié)束標(biāo)志置0,從而使文件恢復(fù)正常。
返回值:沒有返回值。
下面給出一個程序范例來演示該函數(shù)的使用方法。
#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函數(shù)與clearerr函數(shù)應(yīng)該配合使用。也就是說,通過ferror函數(shù)檢測出文件有錯誤標(biāo)志后要用clearerr函數(shù)復(fù)位錯誤標(biāo)志。
新聞熱點(diǎn)
疑難解答
圖片精選