オペレーターでファイルのオープンが成功したことを確認できることを知っています! std::fstream クラスのメンバー関数 fail() 。
しかし、この目的のためにメンバー関数bad()も使用できますか? 規格に適合しているかどうか
オペレーターでファイルのオープンが成功したことを確認できることを知っています! std::fstream クラスのメンバー関数 fail() 。
しかし、この目的のためにメンバー関数bad()も使用できますか? 規格に適合しているかどうか
この関数は、「回復不能なエラー」をbad()
生成します-それが意味するものは何でも。true
基本的に、bad()
何らかの形式のフォーマットエラーとは異なる理由で何かが失敗するたびに設定されます。興味深いことに、open()
さまざまなファイルストリームクラス(、、、および)の機能はstd::ofstream
すべてstd::ifstream
、std::fstream
ファイルstd::ios_base::failbit
バッファに障害が発生したときに設定されopen()
ます。つまりstream.bad()
、失敗したかどうかをテストするために使用することはできませopen()
ん。を使用できますstream.fail()
。個人的には、私はわざわざ変換を使用しませんbool
:
std::ofstream out("file");
if (out) {
process();
}
else {
report_error();
}
はい、できios::bad()
ます。 a を返し、boolean
単に!
否定しますboolean
(つまり、true
->false
およびその逆)。
それがあなたが意図していることかどうかは別の問題です。bad()
オープンの失敗ではなく、ストリームの完全性の喪失をチェックします。