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 回答