注册 登录
编程论坛 C++教室

求助:如何判断输入变量的数据类型?

kscus 发布于 2008-11-15 19:57, 1657 次点击
下面是一段很简单的代码,目的是求得所有输入的整数的平均值。但是我的问题不在这里,大家可以发现这段代码有很大的bug,当我输入的变量不是一个整数而是属于浮点数或者字符的话,程序就会崩溃。请教:如何判断由键盘输入的数据类型,来避免这种情况?有没有什么特定的函数,类似于VB里面的IsNumeric函数可以直接判断输入的是否是数字?
#include<iostream>
using namespace std;
int running_avg(int i);
int main()
{
    int num;
    do{
        cout<<"enter numbers(-1 to quit):";
        cin>>num;
        if(num!=-1)
        cout<<"running average is:"<<running_avg(num);
        cout<<'\n';
    }while(num>-1);
    return 0;
}
int running_avg(int i)
{
    static int sum=0,count=0;
    sum+=i;
    count++;
    return sum/count;
}
6 回复
#2
p1s2008-11-16 13:23
C++的标准函数库貌似也有类似于IsNumeric之类的函数的,LZ可以去查一查。
#3
ntmdgbhwdmm2008-11-16 13:49
函数模板 可以试试
#4
newyj2008-11-16 13:49
C++有判断 是否是数字的函数 但是 不知道 是否 有 判断 是int型 或 float型 的函数
#5
暗夜冰枫2008-11-16 18:40
typeid().name()

如cout<<"输入得变量类型是:"<<typeid(100).name()<<endl;
#6
sunkaidong2008-11-16 20:09
同意楼上的方法..呵呵
#7
kscus2008-11-17 11:36
[bo][un]暗夜冰枫[/un] 在 2008-11-16 18:40 的发言:[/bo]

typeid().name()

如cout

这个方法可以试试,谢了哈
1