clearerr() - I/O Function
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()" .