函数
<cstdio>

clearerr

void clearerr ( FILE * stream );
清除错误指示符
重置流 (stream)错误 (error)文件尾 (eof) 指示符。

当 I/O 函数因错误或到达文件末尾而失败时,流 (stream) 的这两个内部指示符之一可能会被设置。通过调用此函数,或调用以下任一函数,可以清除这些指示符的状态:rewindfseekfsetposfreopen

参数

指向一个 FILE 对象的指针,该对象标识了流。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* writing errors */
#include <stdio.h>
int main ()
{
  FILE * pFile;
  pFile = fopen("myfile.txt","r");
  if (pFile==NULL) perror ("Error opening file");
  else {
    fputc ('x',pFile);
    if (ferror (pFile)) {
      printf ("Error Writing to myfile.txt\n");
      clearerr (pFile);
    }
    fgetc (pFile);
    if (!ferror (pFile))
      printf ("No errors reading myfile.txt\n"); 
    fclose (pFile);
  }
  return 0;
}

该程序打开一个名为myfile.txt的现有文件进行读取,并尝试对其进行写入以引发 I/O 错误。该错误会使用clearerr清除,因此第二次错误检查将返回 false。

输出
Error Writing to myfile.txt
No errors reading myfile.txt


另见