本帖最后由 Mackz 于 2008-08-25 17:01:50 编辑

解决方案 »

  1.   

    en,刚想来说,fclose的问题自己解决了.你说的也对.谢谢
    不过我大意了,在else外面确实还有个fclose(File),不过还有个fclose(FileB),但是FileB是不存在的,所以老出错.shy第一个fseek的问题还在,
    再进一步说一下问题:运行一段时间会出现如下错误提示:
    Debug Assertion Failed!
    Program:...
    File:fseek.c
    line:100
    Expression: (stream!=NULL)点Retry,箭头指向fseek.c中的
            _VALIDATE_RETURN( (stream != NULL), EINVAL, -1);
    这一行 相关代码:
    double temp,tpme[3];
    int nRead = 0;
    fopen_s(&File,"D:\\A.PRN","rb");for (int i=0;i <1;i++)
    {
              fseek(File,1000*count,0);   <-----------F9设置断点在此, F10跟踪debug,当count=508的时候,在此按F10,就会出现上述错误,但 
                                                      是指针跳转后应该还在范围内,即执行下一句nread还是能读出24位的.
     
      nRead =fread (tpme,1,24,File);
    if( nRead == 24 )
    {
                                count++;
    }
    else
    {
    bEnd = TRUE;
    fclose(File);
    }} 
      

  2.   

    搞定! 
    fopen_s(&File,"D:\\A.PRN","rb"); 这一句要移到最外面,这样每次循环的时候不会反复去执行,就可以了
    问题:
    为什么反复去执行这句后来会出错呢? 不懂