我有以下内容将打开一个文件供阅读。但是,我想检查以确保文件已成功打开,因此我正在使用失败来查看标志是否已设置。不过,我不断收到以下错误:检查文件是否成功打开ifstream
我是新的C++,因为我从C来所以不知道我理解这个错误:
cannot call member function ‘bool std::basic_ios<_CharT, _Traits>::fail() const [with _CharT = char, _Traits = std::char_traits]’ without object
代码:
int devices::open_file(std::string _file_name)
{
ifstream input_stream;
input_stream.open(_file_name.c_str(), ios::in);
if(ios::fail() == true) {
return -1;
}
file_name = _file_name;
return 0;
}
您好,感谢您的回答。 HOwever,我只是想知道为什么失败标志从来没有为我工作? – ant2009 2011-06-06 16:53:43
使用'input_stream.fail()'应该和'!input_stream'具有相同的效果。正如我所说的,你不能使用'ios :: fail()',因为它是一个实例方法,而不是静态方法。 – Sven 2011-06-06 16:57:50
请问,为什么在'ifstream'中使用'ios :: in'标志? – nn0p 2015-03-30 16:39:55