ofstream会自动关闭其文件吗?

17

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

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

这样做可以正常工作,但在程序末尾关闭文件不是必要的吗?


请查看这个问题:https://dev59.com/cm445IYBdhLWcg3wirAj(即使那个也是重复的)。 - Dirk
1
@Dirk,我刚刚找的是ofstream而不是ifstream,下次我会更广泛地搜索。如果您愿意,请关闭我的问题。 - nhtrnm
2个回答

35

ofstream在其析构函数被调用时会关闭文件,也就是当它超出作用域时。然而,调用close()并不会造成任何损害,并且能够表达你对维护程序员的意图。

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

https://cplusplus.com/reference/fstream/ofstream/close/


8

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接