Функция Помещает символы обратно во входной поток.
Синтаксис #include
int ungetc(char c, FILE *stream);
Файл, содержащий stdio.h
прототип
Описание ungetc продвигает символ c обратно в указанный
входной поток stream, который должен быть открыт
для чтения. Этот символ может быть получен снова
с помощью последующего вызова функций getc или
fread для данного потока stream. Один символ мож-
но поместить обратно в любой ситуации. Второй вы-
зов функции ungetc без предварительного вызова
функции getc приведет к тому, что предыдущий сим-
вол будет потерян. Функции fflush,fseek, fsetpos
и rewind очищает все помещенные обратно в поток
символы.
Возвращаемое При успешном выполнении, ungetc возвращает символ
значение помещенный обратно в поток. Иначе он возвращает
EOF.
Переносимость ungetc поддерживается в системах UNIX и сов-
местима с ANSI C.
Смотрите также fgetcgetcgetchar
Пример:
#include
#include
int main(void)
{
int i;
char ch;
puts("введите целое, а затем символ\n");
/* считывать пока не встретится не цифра или EOF */
while((ch=getch())!=EOF && isdigit(ch))
i = 10 * i + ch - 48; /* преобразование в целое */
/* если был считан симол, не являющийся цифрой, поместить ее
обратно */
if(ch != EOF)
ungetc(ch,stdin);
printf("i = %d, следующий символ в буфере: %c\n",getch());
return 0;
}