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

不能判断是不是数字,望指点

nalnait 发布于 2007-01-03 07:36, 708 次点击

#include<iostream.h>
#include<ctype.h>
void main()
{
int x;
cin>>x;
if(isdigit(x))
cout<<x<<" true "<<endl;
cout<<isdigit(x)<<endl;
}

8 回复
#2
yushui2007-01-03 09:47
isdigit(x)无论输什么进去得到的都是0
#3
yuyunliuhen2007-01-03 11:22

#include<iostream.h>
#include<ctype.h>
void main()
{
int x;
cin>>x;
if (isdigit(x)) {
cout << x<< " is a digit\n";
}
else {
cout <<x << " is not a digit\n";
}

}

#4
yushui2007-01-03 12:03
isdigit(x)这个的值始终为0啊 所以输出的一直是else里面的内容
#5
yuyunliuhen2007-01-03 12:28
isdigit()函数的参数实质上是一个ASCII字符。数字所对应胡ASCII 48-57.所以isdigit(48)的结果是真;isdigit(65)的结果是假,因为ASCII值为65的是字符'a',内容a当然不是数字了。

#6
yuyunliuhen2007-01-03 12:29
以下是引用yushui在2007-1-3 12:03:42的发言:
isdigit(x)这个的值始终为0啊 所以输出的一直是else里面的内容

如果按楼上说的情况,那么无论怎么都会输出  ’X‘is not a digit。  看下面:

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-1-3 12:30:07编辑过]

#7
一二三四五2007-01-03 12:55
它传入的是ASCII码
#8
caiqiufu2007-01-05 15:23
#include<iostream.h>
#include<ctype.h>
void main()
{
char x;//是判断字符是不是数字,而不是判断数字是不是数字.
cin>>x;
if(isdigit(x))
cout<<x<<" true "<<endl;
cout<<isdigit(x)<<endl;
}
#9
游乐园2007-01-05 17:33
3楼正解

int isdigit() //只是判断输入的字符是否是属于'0'-'9' 是则返回1 不是返回0
1