代码:
* Return.cpp
*
* Created on: 2014年4月17日
* Author: root
*/
#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<string> lists;
int main(){
string str;
int sel;
bool quit=false;
for(int i=0;i<3;i++){
str="song";
lists.push_back(str);
}
while(quit==false){
cout<<"please enter:";
while(!(cin>>sel)){
cout<<"please enter:";
cin.clear();
cin.ignore(1);
}
switch(sel){
case '1':cout<<"play "<<lists[0]<<endl;
break;
case '2':cout<<"play "<<lists[1]<<endl;
break;
case '3':cout<<"play "<<lists[2]<<endl;
break;
case '4':cout<<"quit "<<endl;
quit=true;
break;
default:cout<<"play "<<lists[0]<<endl;
}
}
}///:~
问题:其中cin的clear和ignore方法有什么用呢?
答:clear用于重置输入流状态 当你输入字符时,cin会置错误状态,而clear后,错误状态解除,您就可以重新输入。
ignore用于忽略输入流中若干位。默认无参,忽略一位。
如果没有clear,将陷入死循环,如果没有ignore,将永远获取不到期望值。