Как взглянуть на следующий символ в потоке в C? [дубликат]
Возможные Дубликаты:
C эквивалентно fstream peek
скажем у меня есть файл с символами в нем. Я хочу посмотреть на следующий символ, не перемещая указатель, просто " пик " на нем. как мне это сделать?
FILE *fp;
char c, d;
fp = fopen (file, "r");
c = getc(fp);
d = nextchar?
Как посмотреть на следующий символ, не вызывая getc снова и не перемещая указатель?
1 ответов
вы можете просто использовать getc()
чтобы получить следующий символ, а затем вызов ungetc()
.
Update: см. комментарий @Jonathan для обертки, которая позволяет заглянуть за конец файла (returning EOF
в этом случае).
обновление 2: немного более компактная версия:
int fpeek(FILE * const fp)
{
const int c = getc(fp);
return c == EOF ? EOF : ungetc(c, fp);
}