昨天郁闷了一晚上,用了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下,开始几次没问题,后来就怪了,一直出错.
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下,开始几次没问题,后来就怪了,一直出错.
debug一下
{
while(!feof(fp1)
{
fgets(ln,1024,fp1);
fputs(ln,fp2)
} fp2.close();
}fp1.close();
我不是问的代码问题,代码是简单写的.
主要是问的原理.
debug下一点问题也没有,读写都能.
release下只要有写操作就出错,要是把写操作去掉就没错.
(fp2也能正常打开,就是不能执行写命令,File对象的两写命令都不能执行)
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)再进行调试。