我应该在文件无法打开时关闭文件吗?
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();
不,这没有必要明确完成。(文件)流在隐式超出范围时始终关闭。
std::iostream()
的close()
功能也是一个幂等操作,在流关闭(或从未成功打开)之后,永远不会损害流状态。
如果流无法打开,则无需调用close()
。另一方面,这样做也没有害处。
相关文章:
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 我应该如何获取配置文件的绝对路径与 Windows .exe一起发布?
- 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?
- C++我应该用什么来保存格式化为字符串变量(如sprintf())的文件
- 在为 Java 编译动态链接文件时,我应该选择哪些 g++ 参数
- 我应该把Boost.Python的.so文件放在哪里,这样我就可以把它作为一个模块导入,以及我如何将它与Python 2
- 我应该使用什么功能在mac OS X中打开文件
- 我应该如何存储从文件中获取的这些信息?
- 我应该只对原始 cpp 文件使用 add_executable() 还是通过 add_library() 创建一个库
- 我应该在文件无法打开时关闭文件吗?
- Dokan:我应该自己处理文件共享和访问权限吗?
- 在更改文件描述符 1 以引用其他文件后,我应该如何管理 ::std::cout?
- 我应该如何将字节数组缓冲区传递给写文件
- 我应该将所有.o文件放在库中吗?
- 我应该把文件的末尾写在析构函数中吗
- 我应该如何生成 UserCalibration.bin 文件,如 OpenNI 示例 - NiUserTracker 中
- 我应该在.h文件中还是在.cpp文件中放置POD结构
- 我应该在头文件中的哪里声明我的私有类级静态常量
- 我的项目的哪些文件我应该放在repo