今天些了一个程序,调试都通过了,可是执行exe文件时报错,说fseek有问题。后来我就把fseek语句给注释了,结果错误消除。再后来,我跟换了几个文件,任然使用fseek也没有错误。我分析了一下原因,在fseek报错时,打开的文件中含有图片,而后面尝试的几个文件都没有图片,是不是fseek在处理含有图片的文件的时候会报错呢?很是迷惑!
附程序:
#include <stdio.h>int main()
{
   FILE *f1;
   f1=fopen("1.docx","r+b");
   fseek(f1,10L,SEEK_SET);
   fclose(f1);
   return 0;
}

解决方案 »

  1.   

    For streams opened in text mode, fseek has limited use, because carriage return — linefeed translations can cause fseek to produce unexpected results.
      

  2.   

    打开的文件中含有图片???什么意思哦!不明白!
    fseek只是设置游标位置! 如果出错可能是open时没有打开正常,比如文件已经被打开或者不能写等,然后你再用fseek时就会出错了
      

  3.   

    fopen后判断下  看你的指针是否有值!
      

  4.   

    看下出错的那种情况下fopen返回的错误值是什么