C++里定义整型,怎么防止输入非整型时出错?

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:46:26
定义输入一个整型时,输入非整型就出错了,应该怎么处理?

#include <iostream>
using namespace std;
void main()
{
int a;
cin>>a;
while(cin.fail())
{
cout<<"please input an integer"<<endl;
cin.clear();
cin.ignore(1024,'\n');
cin>>a;
}
cout<<a<<endl;
}

这种方法有个缺陷,就是要求输入整数时你输入了浮点数,那么浮点数的整数部分会被读取给整型变量而不报错.所有要想能处理任何输入错误的可能,就按风龙一的方法,用字符串来接收输入.

全部按字符串输入 再自己判断对错 转成整数
这是实际中经常遇到的问题 所以说实际问题中字符串处理占绝大多数
而纯粹研究题目或算法就不用考虑这些了

try
{
//里面写你要输入和计算的过程

}
catch
{
cout<<"输入有误!"<<endl;
}

或者用个if语句判断
比如输入的数是x
用double y=x%1;
判断y是否等于0
如果等于0就是整数