无法打开文件时我应该关闭文件吗?
我应该这样写吗:
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();
答案 0 :(得分:5)
否,不需要显式完成。 (文件)流总是在隐式超出范围时关闭。
close()
的{{1}}函数也是幂等操作,并且在流被关闭(或从未成功打开)之后,永远不会损害流的状态。
答案 1 :(得分:0)
如果流无法打开,则无需调用close()
。另一方面,这样做也无害。