ofstream会自动关闭其文件吗?

nht*_*rnm 11 c++ ofstream

可能重复:
我需要关闭std :: fstream吗?

int main() {
    ofstream a("a.txt");
    a << "A" << endl;
    //a.close();
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是不是必须在程序结束时关闭文件?

Ben*_*enj 22

ofstream将在调用析构函数时关闭文件,即当它超出范围时.但是,打电话close()肯定没有任何伤害,并表达了你对维护程序员的意图.

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

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


Bo *_*son 6

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

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