首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

老有关问题,cin流又不启作用了

2012-06-11 
老问题,cin流又不启作用了!先上代码吧。C/C++ code#includestring#includevector#includeiostream#in

老问题,cin流又不启作用了!
先上代码吧。

C/C++ code
#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;   }

无效的地方我注释了。好像论坛里经常有人问这样的问题,我google了一下,没看明白。
谁能帮我解释下原因。以及cin输入流不好的原因。
谢谢了!

[解决办法]
cout<<"Please input your target:"<<endl;
cin.sync();
cin.clear();
cin>>target;//就是这里的无效。

热点排行