clearerr() - I/O Function

How is clearerr() used in C++?
How to reset error flag, end of file(EOF)?


clearerr() is an I/O function that is used to reset the "error flag" associated with the stream. It also resets the end of file(EOF) indicator. When a stream function fails either because of an error or if the end of the file(EOF) has been reached, one of these internal indicators may be set.


void clearerr(FILE *stream);

Example :

#include <stdio.h>
int main ()
FILE *fil;
fil= fopen("clearerreg1.txt","r");
fputc ('x',fil);
if (ferror (fil))
printf ("ERROR!! No Write Permission\n");
clearerr (fil);
fgetc (fil);
if (!ferror (fil))
printf ("ERROR!! Cleared\n");
fclose (fil);
return 0;

Result :

ERROR!! No Write Permission
No ERROR!! File has read permission

In the above example a stream "fil" is used to open the file "clearerreg1.txt" with "readonly" permission.The "fputc" function tries to write a character "x" which triggers an error that is cleared by the "clearerr()" .

C++ Tutorial

Ask Questions

Ask Question