ungetc,ungetwc
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 |
+ |
+ |
+ |