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

Should I close a file when it wasn't able open?

本文关键字:文件 我应该      更新时间:2023-10-16

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

我应该写这个:

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();

不,这没有必要明确完成。(文件)流在隐式超出范围时始终关闭。

std::iostream()close()功能也是一个幂等操作,在流关闭(或从未成功打开)之后,永远不会损害流状态。

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