ofstream会自动关闭其文件吗?

时间:2012-10-15 16:34:33

标签: c++ ofstream

  

可能重复:
  do I need to close a std::fstream?

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

这样可以正常工作,但是不需要在程序结束时关闭文件吗?

2 个答案:

答案 0 :(得分:20)

ofstream将在调用析构函数时关闭文件,即当它超出范围时。但是,调用close()肯定不会造成任何伤害,并表达了您对维护程序员的意图。

调用close()还可以检查close()是否成功,因为您还可以检查failbit

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

答案 1 :(得分:5)

如果要检查结果(成功或失败),必须调用close。

否则,流的析构函数将尝试为您关闭文件。