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