我希望用户输入一个正 double 变量。如果他们输入任何其他内容,我希望程序循环并继续要求他们输入数字,而不是出现错误并关闭。我用条件语句和中断做了一个无限循环。出于某种原因,如果他们输入的不是正数,它会无限地询问半径。有人可以帮我解决这个问题吗?
for(;;) {
cout << "Radius: ";
cin >> radius;
if(radius > 0){
break;
}
}
最佳答案
您可以简单地检查cin
的流状态:
double radius;
for(;;) {
cout<<"Radius: ";
if(!(cin>>radius) || radius < 0.0) {
cout << "Invalid input, please enter a positive double value." << endl;
cin.clear();
std::string dummy;
cin >> dummy; // Read the left invalid input
}
else {
break;
}
}
关于c++ - 如何让用户输入正双变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882765/