Latest web development tutorials

C 庫函數– clearerr()

C 標準庫 - <stdio.h> C標準庫- <stdio.h>

描述

C庫函數void clearerr(FILE *stream)清除給定流stream的文件結束和錯誤標識符。

聲明

下面是clearerr() 函數的聲明。

void clearerr(FILE *stream)

參數

  • stream --這是指向FILE對象的指針,該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("读取文件:file.txt 时发生错误\n");
   }
   clearerr(fp);
   if( ferror(fp) )
   {
      printf("读取文件:file.txt 时发生错误\n");
   }
   fclose(fp);

   return(0);
}

假設我們有一個文本文件file.txt ,它是一個空文件。 讓我們編譯並運行上面的程序,因為我們試圖讀取一個以只寫模式打開的文件,這將產生以下結果。

读取文件:file.txt 时发生错误

C 標準庫 - <stdio.h> C標準庫- <stdio.h>