FILE *file1 = NULL;
file1=fopen(filename,"w+");
if (file1!=NULL)
{
fclose(file1);
}
if(file1==NULL)
{
}
在MFC里想利用这种方法新建一个文件,可是新建的文件并不是空文件,而且单步调试时发现两个if都不会执行,这是什么原因?MFC

解决方案 »

  1.   

    看msdn,看看FILE的无效句柄是什么
      

  2.   

    怎么看无效句柄,直接搜索file吗?我搜了,没有看到无效句柄
      

  3.   

    http://msdn.microsoft.com/en-us/library/yeby3zcb(v=vs.71).aspxReturn Value
    Each of these functions returns a pointer to the open file. A null pointer value indicates an error.在if判断体内加输出语句,如果有优化,则有些语句被优化掉了
      

  4.   

    我本来是想通过fopen新建一个空文档,可是为什么每次新建的都不是空的?
      

  5.   

    在MFC里想利用这种方法新建一个文件,可是新建的文件并不是空文件,而且单步调试时发现两个if都不会执行,这是什么原因? 
    ----------------
    不是吧,调试两个if都不执行?你调试的是经过优化后的Release版本的吗?请在Debug模式下调试
      

  6.   

    FILE *fp =fopen(filename,"a+")if(fp)
    {
     fclose(fp);
    }
    else
    {
       fwrite(....);
    }
      

  7.   

    FILE *fp =fopen(filename,"a+") if(fp)
     {
      
      fwrite(....);  fclose(fp); }
     else
     {
        
     }
      

  8.   

    是不是和你新建文件的类型有关,有的文件(比如word)新建出来大小就不是0,文件里面会写入一些属性信息
      

  9.   

    那记事本就是1KB吗?我建的的记事本。还有一个问题就是我删除文件用remove可以吗?还是deletefile?删除的是内容如还是文件?
      

  10.   

    fopen有时成功,有时不成功怎么办?