当文件无法打开时我应该关闭它吗?
Should I close a file when it wasn't able open?
我应该关闭一个无法打开的文件吗?
我应该这样写吗:
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();
如果流无法打开,您无需调用 close()
。另一方面,这样做也无害。
不,没有必要明确地这样做。 (文件)流总是在隐式超出范围时关闭。
std::iostream()
的 close()
函数也是一个 幂等性 操作,并且永远不会在流关闭(或永远不会)之后损害流状态已成功打开)。
我应该关闭一个无法打开的文件吗?
我应该这样写吗:
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();
如果流无法打开,您无需调用 close()
。另一方面,这样做也无害。
不,没有必要明确地这样做。 (文件)流总是在隐式超出范围时关闭。
std::iostream()
的 close()
函数也是一个 幂等性 操作,并且永远不会在流关闭(或永远不会)之后损害流状态已成功打开)。