clearerr() - I/O Function

Topic

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

Explanation

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.

Syntax:


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