C++ 处理cin问题时出错。失败()
例如,如果我输入一个字符“s”,为什么它仍然进入一个无限循环,提示我“有多少人在玩?”?(1-5):“C++ 处理cin问题时出错。失败(),c++,error-handling,char,int,cin,C++,Error Handling,Char,Int,Cin,例如,如果我输入一个字符“s”,为什么它仍然进入一个无限循环,提示我“有多少人在玩?”?(1-5):“ int getnumplayers(){ int num_players=0; while(true){ 库特努姆球员; if(cin.fail()){ cout一旦设置了cin.fail(),您需要用cin.clear()清除它,然后cin才愿意再次读取。因此,它跳过了您的读取请求,因为流不“好” 我想你要排队 cin.clear(cin.rdstate() & ~ios_base:
int getnumplayers(){
int num_players=0;
while(true){
库特努姆球员;
if(cin.fail()){
cout一旦设置了cin.fail(),您需要用cin.clear()清除它,然后cin才愿意再次读取。因此,它跳过了您的读取请求,因为流不“好”
我想你要排队
cin.clear(cin.rdstate() & ~ios_base::failbit);
cin.ignore();
在if(cin.fail())块中
cin.clear(cin.rdstate() & ~ios_base::failbit);
cin.ignore();