为了账号安全,请及时绑定邮箱和手机立即绑定

怎么判断C++的数据类型

怎么判断C++的数据类型

C++
慕桂英3389331 2019-07-07 15:04:38
比如inta;cin>>a;判断a是不是int型的,如果不是从新输入,而且不只一次输错,直到输入a为int型,才继续,,。各位高手支个招吧,谢了...
查看完整描述

4 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

根据你的问题,我的c++代码实现如下:

//ps: VC++ 6.0下编译通过
#include <iostream>
#include <limits>
using namespace std;

int main()
{
int a;

while(true )
{
cin>>a;

if(cin.good() && getchar() != '.') { //input an real number also is not allowed1: getchar() != '.'
break;
}
else { //clean the buffer
//cout<<"Error! Try agin:" ;
cin.clear();
cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
}
}
cout<<"a = "<<a<<endl;
return 0;
}

另外:
用typeid(var_name)可以判定任意变量的数据类型.
通过实验你可以看到不同的数据类型会有对应的一个字母表示
int--i double--d char--c bool--b 等等.
========================
例子:
#include<typeinfo>
#include<iostream>
using namespace std;

int main()
{
int a = 10;
cout<<typeid(a).name()<<endl;

double b = 1000.22;
cout<<typeid(b).name()<<endl;

return 0;
}



查看完整回答
反对 回复 2019-07-08
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

用一个char数组或char*存输入,遍历,如果找到'.'为f,否则i

查看完整回答
反对 回复 2019-07-08
?
跃然一笑

TA贡献1826条经验 获得超6个赞

int a,j;
double i=0.5;
while(i!=0)
{
cin>>a;
j=int(a);
i=a-j;
}



查看完整回答
反对 回复 2019-07-08
  • 4 回答
  • 0 关注
  • 2145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信