大佬们救救,为什么程序什么都不输出
本帖最后由 清如许 于 2022-11-17 13:44 编辑这是一个只输出数字的程序,比如输入sdd786sdda,他就只输出786,
但是现在他什么都不输出,请教各位了
#include<stdio.h>
int main()
{
char b;
while((b=getchar())!='\n')
{
if(b<=9&&b>=0) //因为字母的asic码较大,所以我设置了这个条件过滤字母
{
printf("%c",b);
}
}
return 0;
} 本帖最后由 zhangjinxuan 于 2022-11-17 13:50 编辑
设置的有些不对
#include<stdio.h>
int main()
{
char b;
while((b=getchar())!='\n')
{
if(b<='9'&&b>='0') //这才是标准判断数字的表达式
{
printf("%c",b);
}
}
return 0;
} 本帖最后由 tommyyu 于 2022-11-17 14:03 编辑
第九行应该是是 '9' 和 '0',因为数字9作为字符时对应的是 ascii 中的水平制表符(HT),而数字1作为字符时对应的是“标题开始”字符(SOH),显然,如果这样写就与你想让程序执行的效果不符。而写 '9'
和 '0' 就可以使程序判断输入的字符的 ascii 值是否是在 48 ~ 57 这个区间上(换句话说,也就是这个字符是不是'0'或'1'或'2'或'3'或'4'或'5'或'6'或'7'或'8'或'9')
ascii 对照表 -> http://c.biancheng.net/c/ascii/ tommyyu 发表于 2022-11-17 13:48
第九行应该是是 '9' 和 '0'
哈哈哈,我早一点{:10_256:} zhangjinxuan 发表于 2022-11-17 13:47
设置的有些不对
哦哦哦谢谢大佬 zhangjinxuan 发表于 2022-11-17 13:49
哈哈哈,我早一点
不好意思,最佳答案手滑点错了{:10_266:} 清如许 发表于 2022-11-17 14:03
不好意思,最佳答案手滑点错了
嗯,没事,他说得更全面,就给他吧^_^
页:
[1]