无法打开文件时我应该关闭文件吗?

时间:2019-01-22 20:51:48

标签: c++ fstream ifstream

无法打开文件时我应该关闭文件吗?

我应该这样写吗:

std::ifstream file(DATA_PATH);
if (!file.good()) //File doesn't exist
{
    //do something
}
else //file exists
{
    //do something
    file.close();
}

或者我应该写:

std::ifstream file(DATA_PATH);
if (!file.good()) //File doesn't exist
{
    //do something
}
else //file exists
{
    //do something
}
file.close();

2 个答案:

答案 0 :(得分:5)

否,不需要显式完成。 (文件)流总是在隐式超出范围时关闭。

close()的{​​{1}}函数也是幂等操作,并且在流被关闭(或从未成功打开)之后,永远不会损害流的状态。

答案 1 :(得分:0)

如果流无法打开,则无需调用close()。另一方面,这样做也无害。