fgetcは、ファイルストリームから1文字読み込むC言語標準Cライブラリ関数。標準ヘッダーファイル <stdio.h> で宣言されている。呼称はエフゲットシーと呼ばれることが多い。 unsigned char で読み込み int に型変換(キャスト)して返す。入力に成功した場合には入力した文字が、入力に失敗した場合あるいはファイル終端に達した場合にはEOFが返却値となる。

fgetc関数は、動作的にはgetcと等価である。だが、getcがマクロで実装されてもよいのに対し、fgetcは必ず関数として実装されている。そのため、fgetcの引数として副作用のある式を指定しても、問題なく動作する。また、関数ポインタを取得することもできる。

形式

編集
#include <stdio.h>
int fgetc(FILE *stream);

コード例

編集
#include <stdio.h>

int main(void) {
    int c;
    FILE *infp;

    infp = fopen("infile.txt", "r");
    if (infp == NULL) {
        return -1;
    }

    /* ここでは fgetc の代わりに getc を使うこともできる */
    while ((c = fgetc(infp)) != EOF) {
        /* ここでは fputc の代わりに putc や putchar を使うこともできる */
        fputc(c, stdout);
    }

    fclose(infp);
    return 0;
}

infile.txt というテキストファイルから1文字ずつ読み込み、標準出力にその内容が表示される。

関連項目

編集

外部リンク

編集