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