This documentation is archived and is not being maintained.


Resets the error indicator for a stream.

void clearerr(
   FILE *stream 


Pointer to FILE structure.


The clearerr function resets the error indicator and end-of-file indicator for stream. Error indicators are not automatically cleared; once the error indicator for a specified stream is set, operations on that stream continue to return an error value until clearerr, fseek, fsetpos, or rewind is called.


Routine Required header Compatibility
clearerr <stdio.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// crt_clearerr.c
/* This program creates an error
 * on the standard input stream, then clears
 * it so that future reads won't fail.

#include <stdio.h>

int main( void )
   int c;
   /* Create an error by writing to standard input. */
   putc( 'c', stdin );
   if( ferror( stdin ) )
      perror( "Write error" );
      clearerr( stdin );

   /* See if read causes an error. */
   printf( "Will input cause an error? " );
   c = getc( stdin );
   if( ferror( stdin ) )
      perror( "Read error" );
      clearerr( stdin );



Sample Output

Write error: No error
Will input cause an error? n

See Also

Error Handling Routines | Stream I/O Routines | _eof | feof | ferror | perror | Run-Time Routines and .NET Framework Equivalents