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

getca の後にa を使用できます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 に答える