为什么这个东西一直在循环? .. 我尝试清除 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();
}
最佳答案
首先,不要使用递归:将其设为while
。
其次,使用同步:
int number;
while (true) {
if (cin >> number)
break;
cout << "Invalid number.\n";
cin.sync();
cin.clear();
}
cout << "Number: " << number;
关于c++ - 递归函数中的cin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966734/