C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス feof

🔧 入出力 ・ stdio.h ・ C89

feof の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

int feof(FILE *stream);

どんな関数か

直前の入力操作がファイル終端に達したかどうかを調べる。まだ終端に達していないのに次の読み取りを先読みして初めてEOFになる仕組みのため、ループ条件に直接使うと最後の要素を二重処理するバグになりやすい。

使用例

#include <stdio.h>
int main(void) {
    FILE *fp = fopen("data.txt", "r");
    int c;
    if (fp) {
        while ((c = fgetc(fp)) != EOF) {
            putchar(c);
        }
        if (feof(fp)) puts("\n[EOF reached]");
        fclose(fp);
    }
    return 0;
}

つまずきやすい注意点

⚠️ while (!feof(fp))という書き方は定番の誤り。読み込み関数の戻り値そのものでループを終える。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

feof と一緒に使う関数

fgetcストリームから1文字読み取る。ファイル終端やエラー時はEOFを返す。getchar()はfgetc(stdin)と等価で… ferror直前のストリーム操作でエラーが発生したかどうかを調べる。feofと対で使い、読み込みが止まった理由が終端かエラーかを区別… freadストリームから固定サイズのデータブロックを複数個読み込む。バイナリファイルの読み込みに使い、戻り値は実際に読み込めた要素…

同じ分類(入出力)の関数

fclose ferror fflush fgetc fgets fopen fprintf fputc fputs fread fscanf fseek ftell fwrite getchar gets_s

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る