昨天郁闷了一晚上,用了C的File对象写,不能写fputs.就是非常简单的
  File *fp1,*fp2 if(fp1.fopen(file1,"rt")!=NULL)

  if(fp2.fopen(file2,"wt+")==NULL)
     return;
  while(!feof(fp1)
  {
     fgets(ln,1024,fp1);
     fputs(ln,fp2)
  }  fp1.close();
  fp2.close();
}就是一个简单的一个读文件写入一个新文件.
debug下一点问题也没,release下,开始几次没问题,后来就怪了,一直出错.

解决方案 »

  1.   

    看是哪里出错的?
    debug一下
      

  2.   

    if (fp2.fopen(file2, "wt+") != NULL) 
    {
      while(!feof(fp1) 
      { 
        fgets(ln,1024,fp1); 
        fputs(ln,fp2) 
      }   fp2.close(); 
    }fp1.close(); 
      

  3.   

    debug是没错的,debug下就能运行.
    我不是问的代码问题,代码是简单写的.
    主要是问的原理.
    debug下一点问题也没有,读写都能.
    release下只要有写操作就出错,要是把写操作去掉就没错.
    (fp2也能正常打开,就是不能执行写命令,File对象的两写命令都不能执行)
      

  4.   

    如果你的程序Debug版本能使用,但编译成Release版本就用不了,也许下面介绍的调试Release程序方法会对你有所帮助:步骤如下: 
        1、在Project Settings里选Settings For为All Configurations。 
        2、在C/C++标签中,Debug info 选 Program Database。 
        3、在Link 标签中,Category选 Debug,选中Debug info 复选框和Microsoft format。 
             现在就可以像在调试版本中那样设置断点进行测试了,由于代码优化,有些变量观察不到,行的运行顺序可能也会不同。 
         说明:ASSERT宏在发行版本中不起作用,而应该用VERIFY来进行发行版的调试。如果发行版本运行有问题,可以先禁止所有代码优化(Project -> Settings -> C/C++标签中的Optimizations选为Disabled)再进行调试。
      

  5.   

    原理就是Debug版本允许你范些错,Release版本会暴露出这些错
      

  6.   

    一般都是内存的问题出的错,比如内存越界,变量没有初始化,debug下会默认初始化的,而release下不会