【发布时间】:2014-10-03 06:12:23
【问题描述】:
我正在使用 fstream 库来处理文件。基本上,我需要知道某个文件是否存在。在 c++ 在线文档中,关于 open() 的内容如下:
返回值
无
如果函数打开文件失败,则设置失败位状态标志 对于流(如果该状态标志可能会抛出 ios_base::failure 已使用成员异常注册)。
它说没有指定返回值。但是在失败的情况下,会设置一个标志。我的问题是,我应该然后访问该标志,或者更好地问,我应该如何查看open() 是否成功。
到目前为止我有这个代码:
int Log::add()
{
fstream fileStream;
fileStream.open("logs.txt");
}
【问题讨论】:
-
fileStream.is_open()? en.cppreference.com/w/cpp/io/basic_ifstream/is_open -
那么在失败的情况下标志和异常呢? is_open 经常在 open() 之后立即使用吗?
-
C++ 在那个领域相当糟糕。有两个标志:
fail和bad可以测试,但它不会告诉您文件是否受到保护或不存在或路径错误...
标签: c++