c++ 如何判断输入数据是否为 int型?

c++如何判断输入数据是否为int型?...inta;cin>>a;当输入的不是数字(如字母)时会导致程序出错,有什么办法可以判断输入的a是否为int型呢??如果判断不是... c++ 如何判断输入数据是否为 int型?
...
int a;
cin>>a;

当输入的不是数字( 如字母) 时会导致程序出错,
有什么办法可以判断输入的a 是否为 int型呢??
如果判断不是的话重新输入.

谢谢!!
展开
 我来答
金色潜鸟
推荐于2017-10-11 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5667万
展开全部
如果读入1个int 成功,输入数据就是 int, 否则 就 不是 int.
c++ 若用 c 风格 读入 整型,可以用 读语句 返回值 判断:
#include<iostream>
using namespace std;
#include <stdio.h>
int k, r;
r = scanf("%d",&k);
if (r==1) printf ("good\n"); else printf("error\n");
-----------
c++ 风格 读入 整型, 用输入流 状态 判断:
int i;
cin >> i;
if (cin.good()==1) cout << i << endl;
else cout <<"input err" << endl;
用成员函数 cin.good() 是否为 1 判断。
-----
例如:
输入 123 , 读入 123, 数据正确。
输入 xab , 数据错误
输入 123.456,读入 123, 数据正确。余下的 .456 留在输入流缓冲区。
-----
如果输入数据是 16进制,c 风格 用 r = scanf("%x",&k); c++ 要设 hex ;
用同样方法判断 数据是否正确。
飘渺世间天
推荐于2017-09-18 · TA获得超过2650个赞
知道大有可为答主
回答量:843
采纳率:0%
帮助的人:1103万
展开全部
检查cin.fail():

#include <iostream>
using namespace std;

int main()
{
int a;
cin >> a;
if(cin.fail()) {// 或者if(!cin)
cerr << "invalid input!\n";
cin.clear(); // 对了还要加上这句
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式