C言語例文集


 feof()    ファイポインタの位置がEOFか判定する

ヘッダ stdio.h
書式 int feof(FILE *stream);
引数 stream … ファイルポインタ
戻り値 ファイルポインタの位置がEOFの場合:0以外の値
ファイルポインタの位置がEOF以外の場合:0
解説 streamで指定したストリームのファイルポインタの位置がファイルの最後(EOF)であるかどうか調べる


<サンプルプログラム>

実行ファイルと同じディレクトリにある「test.txt」を開き、
ファイルから1バイトずつ読み込んで1バイトずつ標準出力する。

/****************************************************************************/
#define _CRT_SECURE_NO_DEPRECATE 1  // VisualC++を使用する場合の警告抑制
#include<stdio.h>

int main()
{
    FILE *fp;
    int chk;
    int c;

    // 実行ファイルと同じディレクトリにある「test.txt」を開く
    fp = fopen("test.txt", "r");  
    if(fp == NULL)  // ファイルがオープンできない場合
    {
        fprintf(stderr, "ファイルオープンエラー\n");
        return 1;
    }

    // ファイルから1バイトずつ読み込んで1バイトずつ標準出力する
    while(1)
    {
        c = fgetc(fp);  // ファイルから1バイト読み込む

        if(feof(fp))  // ファイル終端の場合
        {
            break;  // ループを抜ける
        }

        if(ferror(fp))  // 入力ストリームエラーの場合
        {
            fprintf(stderr, "ストリームエラーです\n");
            break;
        }

        fputc(c, stdout);  // 1バイト標準出力
    }

    // カレントディレクトリにある「test.txt」を閉じる
    chk = fclose(fp);
    if(chk != 0)  // ファイルクローズ失敗
    {
        fprintf(stderr, "ファイルクローズエラー\n");
        return 1;
    }

    return 0;
}
/****************************************************************************/


<使用ファイル>

プログラムで使用するtest.txtの内容
--------------------------
abc
123
XYZ
--------------------------

<実行結果>





<Topページ>

Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。