From the documentation: "Reads data from the stream..." this means it will act as other stream you read from. (http://www.cplusplus.com/reference/cstdio/fscanf/)
If you go to the definition of file (FILE - go to definition) you will get to this typedef
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
where you can see sevral pointer (_base & _ptr) that will imply that FILE keeps pointers to both the begining of the file (for seeks, as with any other stream) and to the current location.