clearerr

clearerr

在头文件中定义
void clearerr(FILE * stream);

重置EOF给定文件流的错误标志和指示符。

参数

-该文件重置错误标志

返回值

(没有)。

#include <stdio.h> #include <stdlib.h> #include <assert.h> int main(void) { FILE* tmpf = tmpfile( fputs("abcde\n", tmpf rewind(tmpf int ch; while ((ch=fgetc(tmpf)) != EOF) printf("%c", ch assert(feof(tmpf) // the loop is expected to terminate by eof puts("End of file reached" clearerr(tmpf // clear eof if (feof(tmpf)) puts("EOF indicator set" else puts("EOF indicator cleared\n" }

输出:

abcde End of file reached EOF indicator cleared

参考

  • C11标准(ISO / IEC 9899:2011):