13

重複
の可能性: std::fstream を閉じる必要がありますか?

int main() {
    ofstream a("a.txt");
    a << "A" << endl;
    //a.close();
}

これは問題なく動作しますが、プログラムの最後でファイルを閉じる必要はありませんか?

4

2 に答える 2

29

ofstreamデストラクタが呼び出されたとき、つまりスコープ外になったときにファイルを閉じます。ただし、呼び出すclose()ことは確かに害を及ぼすことはなく、保守プログラマーに意図を表明します。

を呼び出すclose()と、 close() が成功したかどうかを確認することもできます。これは、以下も確認できるためですfailbit

http://www.cplusplus.com/reference/iostream/ofstream/close/

于 2012-10-15T16:37:02.857 に答える
7

結果(成功または失敗)を確認したい場合は、closeを呼び出す必要があります。

それ以外の場合、ストリームのデストラクタはファイルを閉じようとします。

于 2012-10-15T16:38:00.587 に答える