輸出是「無法打開文件」的無限循環。我做錯了什麼?提前致謝。 (P.S我想測試的條件,它無法打開文件,並通過從向量獲取下一個文件名繼續處理)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;
}
清除通常在badbit之後的打開文件上調用以繼續處理該文件。試試把它拿出來?不確定它在這裏做什麼。 –