【发布时间】:2019-01-31 18:46:10
【问题描述】:
我正在制作一个小程序,旨在向用户询问介于特定范围之间的数字,并且它需要确保它实际上是一个实际数字。
int main()
{
double initEstimate = 99;
int tries = 0;
do
{
tries++;
cout<<"enter value: ";
cin>>initEstimate;
if( initEstimate < -10 || initEstimate > 10 )
{
cout<<"value not in range"<<endl;
initEstimate = 99;
}
else if( cin.fail() )
{
cout<<"not a number"<<endl;
cin.ignore();
cin.clear();
initEstimate = 99;
}
if(tries == 3)
{
cerr<<"error: too many tries"<<endl;
return 1;
}
}while(initEstimate == 99);
cout<<"\n\nsuccess"<<endl;
return 0;
}
在测试输入是否在范围内时,一切正常,但是,当它测试输入是否是数字而不是另一个字符时,我遇到了问题。例如,如果我在控制台中输入“a”,程序会立即遍历所有尝试并输出“尝试次数过多错误”。我已经在网上广泛寻找解决方案,但找不到像我这样的问题的人。 帮兄弟解惑:)
【问题讨论】:
标签: c++