C言語関数:fgetc





C言語のページでは、次の内容を解説しております。
C言語の入門講座  C言語の文法を中心に、基本的な関数などの解説をしています。
C言語ケーススタディ  C言語での実践的なプログラミングについて解説をしています。
C言語の関数リファレンス  C言語で用意されている関数を解説しています。
C言語で3次元動画プログラム  C言語で3次元タートルグラフィックを使用した3次元の動画プログラムの作成例です。
C言語の検定試験  C言語の文法に関する検定試験を実施することができます。
C言語でゲーム作成  C言語を使用したゲームの作り方を解説したページも用意しております。



2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を協力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。




■fgetc
streamからの1文字取得

【分類】
標準入出力/ストリーム関数

【書式】
int fgetc(FILE *stream);

【パラメータの型と説明】

パラメータ説明
FILE *streamファイルポインタ(ストリーム)

【機能説明】
streamで指定したストリームから1文字読み込み、その文字を返します。
読み込みに失敗(ファイルの最後に到達しているとき)したときはEOF(-1)を返します。
fgetc()関数とgetc()関数は同じ機能の関数です。

fgetc()関数の使用例です。 「test.txt」というファイルの内容を読み込むプログラムです。 実行する前に、ファイルを作成しておく必要があります。 次のコマンドでファイルを作成してください。

C:\StudyC\MyProg>echo test file>test.txt

C:\StudyC\MyProg>echo line add>>test.txt

C:\StudyC\MyProg>type test.txt
test file
line add

これで読み書き可能な(普通の状態)ファイル「test.txt」が作成されました。
※echoコマンドは画面に文字列を表示するものです。 他の多くのコマンドでも同じですが、最後に「>ファイル名」を指定すると画面に表示される内容がファイルに書き込まれます。 また、「>>ファイル名」とするとファイルに追記されます。

#include <stdio.h>

main()
{
        FILE    *fp;
        char    rc;

        fp = fopen("test.txt", "r");
        if (fp == NULL)
        {
                printf("ファイルオープンエラー\n");
                return;
        }
        for (;;)
        {
                rc = fgetc(fp);
                if (rc == EOF)
                {
                        break;
                }
                putchar(rc);
        }
        fclose(fp);
}

実行結果は以下になります。

test line
line add

1.fopen()関数で「test.txt」ファイルをオープンします。
「ファイルオープンエラー」と表示される場合は、事前にファイルが作成できていない可能性があるので確認してください。
2.fgetc()関数でファイル「test.txt」の内容を1文字ずつ読み込みます(ループで繰り返します)。
3.putchar()関数で読み込んだ文字を表示します。
4.fgetc()関数が-1(EOF)を返したときループを抜けて終了します。

【参照関数】
getc

【使用例】
第14回C言語講座 ファイル読み書き1
C言語ケーススタディ フィルタ処理(大小文字変換)
C言語ケーススタディ フィルタ処理(空白文字を'-'に置換)
C言語ケーススタディ フィルタ処理(空白文字を除去)