如何查看C中流中的下一个字符?

时间:2011-10-01 22:18:56

标签: c

  

可能重复:
  C equivalent to fstream's peek

说我有一个包含字符的文件。我想看看下一个字符是什么而不移动指针,只是为了“达到峰值”。我该怎么做呢?

FILE *fp;
char c, d;

fp = fopen (file, "r");

c = getc(fp);

d = nextchar?

如何在不实际再次调用getc并移动指针的情况下查看下一个字符?

1 个答案:

答案 0 :(得分:8)

您只需使用getc()获取下一个字符,然后拨打ungetc()

更新:请参阅@ Jonathan对包装器的评论,该包装器允许窥视文件的末尾(在该事件中返回EOF)。

更新2:稍微紧凑的版本:

int fpeek(FILE * const fp)
{
  const int c = getc(fp);
  return c == EOF ? EOF : ungetc(c, fp);
}