为什么这个东西会循环? ..我尝试清除cin流,但如果我输入的不是数字,它仍会循环播放。
void AskQuestion()
{
DisplayQuestion();
bool Exit = false;
int input = 0;
cout<<"Input : ";
if(!(cin>>input))
{
cout<<"Invalid Input"<<endl;
cin.ignore(10000,'\n');
cin.clear();
}
else
{
Exit = ProcessInput(input);
}
if(!Exit) AskQuestion();
}
答案 0 :(得分:2)
首先,不要使用递归:将其设为while
。
其次,使用sync:
int number;
while (true) {
if (cin >> number)
break;
cout << "Invalid number.\n";
cin.sync();
cin.clear();
}
cout << "Number: " << number;