很奇怪,我在运行fopen函数出错,百思不得其解。文件路径正确,打开模式正确,就是读不出正确的数据,我进行调试,发现在运行fopen.c中的stream = _getstream()时,stream得到的流数据不正确。不知道是什么问题。请各位高手指点一下吧。

解决方案 »

  1.   

    通过getlasterror找问题吧,是不是文件权限的问题??
      

  2.   

    CStringA strReadA(m_Path);
    strcpy((char *)Prg_file,strReadA);
      f=fopen(Prg_file,"r");

    if(f == NULL)
    {
    i=GetLastError();//当函数调用返回一个错误结果时,这个函数返回错误代码
    return -1;
    }
    f的结果为:(*f)._file 0x00000003
    (*f)._flag  0x00000001   其他的都为零,所以用getlasterror()函数,返回正确。
      

  3.   

    character set  =>  use muti-byte character set
      

  4.   

    今天调试发现 fopen可以读出文件了,但是当执行到后面的fread函数时就出现:Tool.exe 中的 0x0fea43d7 (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 写入位置 0x000001c0 时发生访问冲突怎么回事?好像跟字符集没有关系,因为多字节和unicode字符集都是一样的结果。
      

  5.   

    你调试进去看看fname是不是只显示了第一个字符?如果是,就是文件名的问题,我遇到的就是这个问题,不知道为什么没打开也不报错。我的解决方法之一个一个字符赋值给fname之后就可以打开了。