【发布时间】:2014-06-30 09:52:56
【问题描述】:
假设您声明了std::ifstream 或std::ofstream 的实例,但is_open() 返回0
例子:
std::ifstream file("myfile.txt");
if (!file.is_open()) {
printf("Could not open file\n");
return;
}
由于文件从未打开,我还需要在printf 语句之后调用file.close() 吗?
【问题讨论】:
-
想一想。该文件未打开。有什么可以关闭的?
-
您通常不必显式调用
close(),它会在实例超出范围时自动完成。 -
@FrédéricHamidi 并不是所有的编程都如此直观。我会假设不会,但你永远不会知道。可能应该在聊天中询问,因为这是一个是/否的问题。然而,“比预期的答案略长”带来的额外知识总是值得赞赏的。
-
@πάνταῥεῖ 如果我声明一个
ifstream来检查文件是否存在,然后根据条件我需要打开一个ofstream来编辑文件怎么办?我会然后需要关闭它对吗?
标签: c++ file-io ifstream ofstream