Программирование на C и C++

Онлайн справочник программиста на C и C++

ungetc

int ungetc(int ch, FILE *stream)

Прототип: 
Описание: 

Функция ungetc() возвращает символ, заданный младшим байтом аргумента ch, обратно во входной поток stream. При очередной операции чтения из stream этот символ считывается снова. Обращение к функциям fflush() или fseek() прекращает действие функции ungetc() и отбрасывает возвращаемый символ.

Между двумя последовательными операциями чтения может быть возвращен обратно только один символ.

Возвратить описанным образом EOF невозможно.

Вызов ungetc() сбрасывает флаг конца файла, связанного с указанным потоком. Значение ука­зателя положения в файле для текстового потока является неопределенным до тех пор, пока все возвращенные символы не будут считаны, после чего указателю возвращается то значение, кото­рое он имел до первого вызова ungetc(). В случае двоичного потока при каждом вызове ungetc() значение указателя положения в файле уменьшается на единицу.

Возвращаемое значение равно ch в случае успеха и EOF при неудаче.

Пример: