我有以下內容將打開一個文件供閱讀。但是,我想檢查以確保文件已成功打開,因此我正在使用失敗來查看標誌是否已設置。不過,我不斷收到以下錯誤:檢查文件是否成功打開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