这是代码
double enter_number()
{
double number;
while(1)
{
cin>>number;
if(cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Invalid input " << endl;
}
else
break;
cout<<"Try again"<<endl;
}
return number;
}
我的问题是,当我输入 1x 之类的内容时,会将 1 作为输入,而不会注意到为另一次运行而遗漏的字符。有什么方法可以使它与任何实数一起工作,例如 1.8?