2

我正在使用fstream用 C++ 打开 .txt 文件。到目前为止,它工作得很好。但是,如果无法打开input_file,我希望控制台显示错误消息。我该怎么办?

片段:

cin >>  in_file_name ;

ifstream in_file(in_file_name.c_str());

in_file_str.assign(istreambuf_iterator<char>(in_file), 
istreambuf_iterator<char>());
4

5 回答 5

8
ifstream in_file(in_file_name.c_str());
if( in_file.fail() ) {
    cerr << "Error!" << endl;
}
于 2010-11-03T23:33:24.687 回答
3

用于fail()确定是否ifstream成功打开。

于 2010-11-03T23:30:03.307 回答
3

你可以使用is_open方法

cin >>  in_file_name ;

ifstream in_file(in_file_name.c_str());
if(!in_file.is_open())
{
   cout<<"Can't open the file";
}
于 2010-11-03T23:40:15.767 回答
2

用于operator!测试文件打开是否成功。例子:

std::ifstream fs(...);
if (!fs) {
    std::cerr << "Could not open file.\n";
}
于 2010-11-03T23:35:42.250 回答
1

所有标准 iostream 都支持转换为 void*,这允许进行测试。这意味着你可以做到if(!in_file) { ... }

于 2010-11-03T23:33:50.397 回答