出力は "ファイルを開くことができません"という無限ループです。どうしたんだ?前もって感謝します。あなたがエラーの場合、イテレータをインクリメントしていない、単に十分clear()は無限ループに入ります
#include <iostream>
#include <istream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
ifstream input;
vector<string> files;
files.push_back("ifile");
files.push_back("ifile2");
vector<string>::const_iterator iter=files.begin();
while (iter!=files.end())
{
string s;
input.open(iter->c_str());
if (!input)
{
cerr<<"cannot open the file"<<endl;
input.close();
input.clear();
continue;
}
while(input>>s)
cout<<s<<' '<<ends;
input.close();
input.clear();
cout<<endl;
++iter;
}
return 0;
}
クリアは通常、ファイルの処理を続けるためにバッドビットの後にオープンファイルで呼び出されます。それを取り出してみてください。それがここで何をしているのかは分かりません。ありがとう。 –