FILE* stream;
int date;
stream = fopen( "x:\\file.xxx", "r" );
fread(&date, sizeof(int), 1, stream);与stream关联的文件指针会随着实际读取的字节数而不断增加,那么该如何得到这个文件指针呢?进而可以操作此指针的偏移,进行有选择的读取文件数据?请高手指点!

解决方案 »

  1.   

    可以用fseek函数来操作文件指针啊。
      

  2.   

    刚才试了一下,
    先用fread(&date, sizeof(int), 1, stream);连续读取了几个数据,
    然后用fseek( stream, offset*sizeof(int), SEEK_CUR );移动了文件指针,
    然后再用fread(&date, sizeof(int), 1, stream);继续读取数据,
    但读出来的数据不对,不知道我的用法哪里不对?
      

  3.   

    没太看懂你的意思,但我记得fread()在读取的时候,文件指针也随着移动,如果想读取特定位置的数据,是不是应该用fseek(stream,offset,SEEK_SET)?
      

  4.   

    是想有选择的读取数据,中间隔开一部分数据再读取一部分数据,所以
    用fread(&date, sizeof(int), 1, stream);连续读取了几个数据,
    然后用fseek( stream, offset*sizeof(int), SEEK_CUR );移动了文件指针,
    然后再用fread(&date, sizeof(int), 1, stream);继续读取数据,
    但读出来的数据不对,不知道我的用法哪里不对?