Anthony
Anthony

Reputation: 333

C equivalent to fstream's peek

I know in C++, you're able to peek at the next character by using: in.peek();.

How would I go about this when trying to "peek" at the next character of a file in C?

Upvotes: 33

Views: 35413

Answers (3)

Charles Ma
Charles Ma

Reputation: 49171

you'll need to implement it yourself. use fread to read the next character and fseek to go back to where you were before the read

EDIT:

 int fsneaky(FILE *stream, int8_t *pBuff, int sz) {
    sz = fread(pBuff, 1, sz, stream)
    fseek(pFile, -sz, SEEK_CUR);
    return(sz);
 }

Upvotes: 2

ephemient
ephemient

Reputation: 204778

fgetc+ungetc. Maybe something like this:

int fpeek(FILE *stream)
{
    int c;

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

    return c;
}

Upvotes: 60

moonshadow
moonshadow

Reputation: 89085

You could use a getc followed by an ungetc

Upvotes: 9

Related Questions