Funkcija „clearerr“ () išvalo failo pabaigos ir duoto srauto klaidų rodiklius.
Programuojant C, „clearerr“ () išvalo failo pabaigos ir duoto srauto klaidų rodiklius.
clearerr()
Funkcija apibrėžta antraštės faile.
C clearerr () Prototipas
void clearerr (FILE * srautas);
Funkcija clearerr () paima vieną parametrą, kuris yra FILE objekto, identifikuojančio srautą, žymeklis.
Funkcija negrąžina jokios vertės.
Pavyzdys: C clearerr () funkcija
#include int main () ( FILE * pFile; pFile = fopen("myfile.txt","r"); if (pFile == NULL) perror ("Error opening file"); else ( fputc('x', pFile); if(ferror(pFile)) ( printf("Error Writing to myfile.txt"); clearerr(pFile); ) fgetc(pFile); if (!ferror(pFile)) printf("No errors reading myfile.txt"); fclose(pFile); ) return 0; )
Rezultatas
Rašant myfile.txt įvyko klaida Nėra klaidų skaitant myfile.txt
Ši programa atidaro esamą failą, kurį myfile.txt
reikia perskaityti.
Dabar funkcija fputc()
bando rašyti į failą. Kadangi skaitymo režimu rašyti negalima, tai sukelia įvesties / išvesties klaidą.
Tačiau ši klaida pašalinama naudojant clearerr()
. Taigi, kai kitas klaidos patikrinimas įvyksta ferror()
funkcijoje, rodo, kad klaidų nerasta.