C语言 <stdio.h> clearerr() 函数

  • 描述

    C库函数int clearerr(FILE * stream)清除给定流的EOF和错误指示符。
  • 声明

    以下是clearerr()函数的声明。
    
    void clearerr(FILE *stream)
    
    参数
    • stream - 这是指向标识流的FILE对象的指针。
  • 返回值

    这不会失败,也不要设置外部变量errno,但是如果它检测到其参数不是有效的流,则必须返回-1并将errno设置为EBADF。
    示例
    以下示例显示clearerr()函数的用法-
    
    #include<stdio.h>
    
    int main () {
       FILE *fp;
       char c;
    
       fp = fopen("file.txt", "w");
    
       c = fgetc(fp);
       if( ferror(fp) ) {
          printf("Error in reading from file : file.txt\n");
       }
       clearerr(fp);
       
       if( ferror(fp) ) {
          printf("Error in reading from file : file.txt\n");
       }
       fclose(fp);
    
       return(0);
    }
    
    假设我们有一个文本文件file.txt,它是一个空文件,让我们编译并运行上述程序,这将产生以下结果,因为我们尝试读取以只读模式打开的文件。
    
    Error reading from file "file.txt"