※ 引述《xshane831 (Shane)》之铭言:
推文麻烦
: char filename[]="Result.txt";
: ofstream fp;
下面三行我觉得没太必要,
: fp.open(filename, ios::out);
: if(!fp)
: fp.open(filename, ios::out);
假设第一次的 fp.open 是失败的话
我不确定再做一次 fp.open 有什么意义
若真要这么做,在第二次 open 之前再把所有 flag 清掉
后面两行变成
if(!fp) {
fp.clear() ;
fp.open(filename, ios::out);
}
但真觉得没太大必要
: if(fp)
: {
: fp << xxxxxx;
: fp << endl;
: }
: fp.close();
下面 sample 大概是你要的
for( i = 0 ; i < ntimes ; ++i)
{
fp.open(filename, ios::out);
if(fp) {
fp << xxxxxx;
fp << endl;
fp.close(); // 开启成功才有必要 close , 失败就不用 close
}
fp.clear(); // 把 ostream 所有 flag 清掉 , 使该物件可重复使用
}