rock8312 发表于 2013-12-23 01:13:40

ascII 码转换与if语句问题!!!?求教

#include <stdio.h>
void main()
{
char c;
printf("input a character: \n");
c = getchar();
if(c < 32)
{
printf("This is a cntrol character\n");
}
else if(c >='0' && c <='9')
{
printf("This is a digit\n");
}
else if(c >= 'A' && c <= 'Z')
{
printf("THis is a big letter\n");
}
else if(c >= 'a' && c <= 'z')
{
printf("This is a small letter\n");
}
else
{
printf("This is an other character\n");
}
}

rock8312 发表于 2013-12-23 01:15:17

c = getchar();
if(c < 32)
{
   printf("This is a cntrol character\n");
}
else if(c >='0' && c <='9')
{
   printf("This is a digit\n");无论我输入31 或者99都是输出显示都是This is a digit这一句。。。为什么?

zhangbin101004 发表于 2013-12-23 08:17:26

猜测可能是getchar();引发的问题,可以替换成标准读入试试,
getchar会在内存残留回车符号,二次读取容易引发意想不到的结果。

iamxupeng 发表于 2013-12-23 09:37:42

强烈支持楼主ing……

rock8312 发表于 2013-12-23 14:58:49

zhangbin101004 发表于 2013-12-23 08:17 static/image/common/back.gif
猜测可能是getchar();引发的问题,可以替换成标准读入试试,
getchar会在内存残留回车符号,二次读取容易引 ...

追加一个问题,scanf("") 和getchar()都是键盘输入,现在也不是很明白他们之间的区别。
页: [1]
查看完整版本: ascII 码转换与if语句问题!!!?求教