La funzione clearerr () cancella gli indicatori di fine file e di errore per il flusso specificato.
Nella programmazione C, clearerr () cancella gli indicatori di fine file e di errore per il flusso specificato.
La clearerr()
funzione è definita nel file di intestazione.
Prototipo C clearerr ()
void clearerr (FILE * stream);
La funzione clearerr () accetta un parametro che è il puntatore a un oggetto FILE che identifica il flusso.
La funzione non restituisce alcun valore.
Esempio: funzione C clearerr ()
#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; )
Produzione
Errore durante la scrittura su myfile.txt Nessun errore durante la lettura di myfile.txt
Questo programma apre un file esistente chiamato myfile.txt
per la lettura.
Ora, la funzione fputc()
prova a scrivere nel file. Poiché la scrittura non è consentita in modalità di lettura, provoca un errore di I / O.
Tuttavia, questo errore viene cancellato utilizzando clearerr()
. Quindi, quando si verifica il successivo controllo degli errori nella ferror()
funzione, viene visualizzato che non sono stati trovati errori.