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

🔧 入出力 ・ stdio.h ・ C89

ungetc の使い方

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

書式

int ungetc(int c, FILE *stream);

どんな関数か

読み取った1文字をストリームへ押し戻し、次の読み取りで再び取得できるようにする。字句解析で「1文字先読みしてから判断する」処理でよく使われるテクニック。 押し戻した文字は次の読み取り関数(fgetc等)で必ず最初に返される仕組みになっている。

使用例

#include <stdio.h>
int main(void) {
    int c = getchar();
    if (c == '-') {
        puts("negative sign found");
    } else {
        ungetc(c, stdin);
    }
    return 0;
}

つまずきやすい注意点

⚠️ 押し戻せる文字数は最低1文字しか規格で保証されていない。

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

ungetc と一緒に使う関数

fgetcストリームから1文字読み取る。ファイル終端やエラー時はEOFを返す。getchar()はfgetc(stdin)と等価で… getchar標準入力から1文字読み取る。ファイル終端ではEOFを返すため、戻り値はint型で受け取る必要がある。char型で受けると…

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

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

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

完全版(BOOTH)を見る