※ 引述《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 清掉 , 使該物件可重覆使用
}