ungetc()

Вернуть символ во входной поток

Прототип:

#include <stdio.h>
int ungetc( int c,
FILE *fp );

Аргументы:

c
Символ, который требуется вернуть.
fp
Поток, в который требуется вернуть символ.

Библиотека:

libc

Описание:

Функция ungetc() возвращает символ, определённый c на вход потоку, на который указывает fp. Символ будет возвращён в следующий раз, когда будет происходить чтение из потока. Возвращёный символ будет отвергнут при использовании fflush() или функций позиционирования в файле ( fseek(), fsetpos(), или rewind()) перед следующей операцией чтения.

Гарантируется возвращение только одного символа (самого последнего).

Функция ungetc() удаляет индикатор конца файла, если значение c не EOF.

Возвращаемое значение:

Возвращёный символ.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main( void )
{
FILE *fp;
int c;
long value;
fp = fopen( "file", "r" );
value = 0;
c = fgetc( fp );
while ( isdigit( c ) )
{
value = value * 10 + c - '0';
c = fgetc( fp );
}
ungetc( c, fp ); /* put last character back */
printf( "Value=%ld\n", value );
fclose( fp );
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

fopen(), getc(), getc_unlocked(), ungetwc()




Предыдущий раздел: Описание API системной библиотеки