c++判断输入是字符还是数字

用cin读入一个数据,如何判断是数字还是字母,因为输入的数据并不一定是0-9之间的,譬如可能是33算数据,3ab就不算数据。

可以参考下面的代码:

#include<iostream>

using namespace std;

int main()

{

double num;

if(cin>>num)

cout<<"Input correct!"<<endl;

else

cout<<"Input erroe!"<<endl;

return 0;

}

扩展资料:

C语言isupper()函数:判断一个字符是否是大写字母

C语言isspace()函数:判断一个字符是否是空白符

C语言isprint()函数:判断一个字符是否是可打印字符

C语言islower()函数:判断一个字符是否是小写字母

C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回x^y的值

参考资料来源:百度百科-C语言函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-14
这个……你定变量的时候不就确定了他的类型了。

如果是INT型即使是字母也会转化成数字的,想判断输入后数据到底是数字还是字母就需要自己再编算法了。因为如果是数字的话可以组合,比如123,如果是字符的话就是只有一个了,比如abc结果只是97.

如果是以字符类型输入数字,可以检查输入的ASCII码来确定,只要是48-57就确定是数字了,在减去48不就是需要的数值了,或者还可以直接用atoi函数将字符串转换为数值。
第2个回答  2012-08-13
一个有效的数字,除了包含0~9之外,还可以有减号'-', 加号'+',句号'.', 科学计数法的字母'E'或'e',
要想正确判断一个字符串是否是数字,还是尽量利用C/C++提供的函数。
_atodbl / _atoflt / _atoldbl 这几个函数的功能,是将字符串转成浮点数,如果转换失败,返回0。
利用这个函数,可以判断输入字符是否有效数字。
第3个回答  2012-08-13
func(char *str1)
{
for(int i=0;str1[i]!='\0';i++)
if (str1[i]<'0' && str1[i]>'9') return 0;
return 1;
}

返回1就是数字,返回0就不全是数字或者不是数字本回答被网友采纳
第4个回答  2012-08-13
#include <ctype.h>
bool is_digit(const char *s){

for(;*s;s++)
if(!isdigit(*s))
return false;
return true;

}