函式
<cstdio>

feof

int feof ( FILE * stream );
檢查檔案結束指示符
檢查與關聯的檔案結束指示符是否已設定,如果已設定,則返回一個非零值。

此指示符通常由先前在上的操作設定,該操作試圖在檔案末尾或超出檔案末尾處讀取。

請注意,的內部位置指示符可能指向下一次操作的檔案末尾,但檔案結束指示符可能直到某個操作嘗試在該點讀取時才被設定。

此指示符可透過呼叫 clearerrrewindfseekfsetposfreopen 來清除。但是,如果位置指示符未被此類呼叫重新定位,下一次 I/O 操作很可能會再次設定該指示符。

引數

流 (stream)
指向一個 FILE 物件的指標,該物件標識了流。

返回值

如果與流關聯的檔案結束指示符已設定,則返回一個非零值。
否則,返回零。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* feof example: byte counter */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  int n = 0;
  pFile = fopen ("myfile.txt","rb");
  if (pFile==NULL) perror ("Error opening file");
  else
  {
    while (fgetc(pFile) != EOF) {
      ++n;
    }
    if (feof(pFile)) {
      puts ("End-of-File reached.");
      printf ("Total number of bytes read: %d\n", n);
    }
    else puts ("End-of-File was not reached.");
    fclose (pFile);
  }
  return 0;
}

此程式碼開啟名為myfile.txt的檔案,並透過逐個讀取所有字元來計算它包含的字元數。程式檢查是否已到達檔案末尾,如果是,則列印讀取的總位元組數。

另見