老问题,cin流又不启作用了!
先上代码吧。
#include<string>#include<vector>#include<iostream>#include<list>using namespace std;bool findtarget(int number,vector<int>::iterator itera1,vector<int>::iterator itera2)//用来寻找在两个迭代器范围内的数{ bool bvalue=false; while(itera1!=itera2) { if(*itera1==number) { bvalue=true; ++itera1; } else ++itera1; } return bvalue;}void main(){ int temp; int target; vector<int> ivec; list<int> ilist; vector<int>::iterator iter1=ivec.begin(); vector<int>::iterator iter2=ivec.end(); while(cin>>temp,cin.eof())//这个我想联系一下错误处理的。 { if(cin.bad()) throw runtime_error("IO stream corrupted"); if(cin.fail()) { cerr<<"bad data,try again"; cin.clear(); //cin.ignore(5,' ');是不是这的问题... continue; } if(temp==-1) break; ivec.push_back(temp); cout<<endl; } cout<<"Please input your target:"<<endl; cin>>target;//就是这里的无效。 cout<<"The result of the function is:"<<endl; cout<<findtarget(target,iter1,iter2)<<endl; }