C相当于fstream的偷看

时间:2010-01-17 21:32:00

标签: c filestream stdio peek

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

当我试图“偷看”C中文件的下一个字符时,我该怎么做呢?

3 个答案:

答案 0 :(得分:44)

fgetc + ungetc。也许是这样的:

int fpeek(FILE *stream)
{
    int c;

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

    return c;
}

答案 1 :(得分:9)

您可以使用getc后跟ungetc

答案 2 :(得分: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);
 }