c++ 如何判断输入数据是否为 int型?
c++如何判断输入数据是否为int型?...inta;cin>>a;当输入的不是数字(如字母)时会导致程序出错,有什么办法可以判断输入的a是否为int型呢??如果判断不是...
c++ 如何判断输入数据是否为 int型?
...
int a;
cin>>a;
当输入的不是数字( 如字母) 时会导致程序出错,
有什么办法可以判断输入的a 是否为 int型呢??
如果判断不是的话重新输入.
谢谢!! 展开
...
int a;
cin>>a;
当输入的不是数字( 如字母) 时会导致程序出错,
有什么办法可以判断输入的a 是否为 int型呢??
如果判断不是的话重新输入.
谢谢!! 展开
2个回答
展开全部
如果读入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 ;
用同样方法判断 数据是否正确。
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 ;
用同样方法判断 数据是否正确。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询