34

我知道在 C++ 中,您可以使用以下命令查看下一个字符:in.peek();

当试图“偷看”C 中文件的下一个字符时,我将如何处理这个问题?

4

3 回答 3

57

fgetc + ungetc。也许是这样的:

int fpeek(FILE *stream)
{
    int c;

    c = fgetc(stream);
    ungetc(c, stream);

    return c;
}
于 2010-01-17T21:39:15.560 回答
9

您可以使用 agetc后跟ungetc

于 2010-01-17T21:38:09.997 回答
2

你需要自己实现它。使用fread读取下一个字符并使用fseek回到读取之前的位置

编辑

 int fsneaky(FILE *stream, int8_t *pBuff, int sz) {
    sz = fread(pBuff, 1, sz, stream)
    fseek(pFile, -sz, SEEK_CUR);
    return(sz);
 }
于 2010-01-17T21:37:52.840 回答