如何使CIN只取数字这是代码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)一起工作?
3 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
它冲过缓冲器。您还可以在使用CIN和getline时使用它,同时将输入作为CIN离开缓冲区中的‘\n’,并且不删除(我相信,不完全确定,可能是cin.get),所以getline在遇到‘\n’之后,只要附加到输入缓冲区,就会被分隔。
- 3 回答
- 0 关注
- 722 浏览
添加回答
举报
0/150
提交
取消