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

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 に答える
3

が正常に開かれたfail()かどうかを判断するために使用します。ifstream

于 2010-11-03T23:30:03.307 に答える
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 に答える