ungetc,ungetwc

提供: RAD Studio
移動先: 案内検索

stdio.h:インデックス への移動


ヘッダーファイル

stdio.h

カテゴリ

入出力ルーチン

プロトタイプ

int ungetc(int c, FILE *stream);

wint_t ungetwc(wint_t c, FILE *stream);

説明

入力ストリームに 1 文字を戻します。

メモ:  Win32 GUI アプリケーションでは,この関数を使用しないでください。

ungetc は,指定された入力ストリーム(読み出し用に開かれている必要がある)に文字 c を戻します。このストリームに対して次に getc または fread を呼び出すと,この文字が返されます。どのような場合でも,1 文字を戻すことができます。getc を呼び出さないで再度 ungetc を呼び出すと,前回の文字が失われます。fflush,fseek,fsetpos,または rewind を呼び出すと,戻された文字の記録はすべて消去されます。

戻り値

成功した場合,ungetc は,戻された文字を返します。

エラーが発生した場合は,EOF を返します。



 #include <stdio.h>
 #include <ctype.h>
 int main( void )
 {
    int i=0;
    char ch;
    puts("Input an integer followed by a char:");
    /* 数字以外または EOF が見つかるまで文字を読み取ります */
    while((ch = getchar()) != EOF && isdigit(ch))
       i = 10 * i + ch - 48; /* ASCII を int 値に変換します */
    /* 数字以外の文字が読み取られた場合は,それを入力バッファにプッシュバックします */
    if (ch != EOF)
       ungetc(ch, stdin);
    printf("i = %d, next char in buffer = %c\n", i, getchar());
    return 0;
 }



移植性



POSIX Win32 ANSI C ANSI C++

ungetc

+

+

+

+

ungetwc

+

+

+