首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c 判断输入是否为数字的代码不正确解决思路

2012-02-13 
c 判断输入是否为数字的代码不正确用了isdigit函数,但是所有输入都被判断为非数字了。#includestdio.h#in

c 判断输入是否为数字的代码不正确
用了isdigit函数,但是所有输入都被判断为非数字了。
#include   <stdio.h>
#include   <ctype.h>

int   test()
{
int   tt[4];
scanf( "%d ",   &tt[0]);
if(isdigit(tt[0])   ==   0)
{
printf( "please   input   again. ");
test();
}
printf( "success ");
}
int   main(int   argc,   char   *argv[])
{
test();
}

后面的这一个在输入是字母的时候,也照样断定为数字了,怎么回事?
#include   <stdio.h>
#include   <ctype.h>

int   test()
{
int   tt[4];
scanf( "%d ",   &tt[0]);
if((tt[0]   <   0)   ||   (tt[0]   >   9))
{
printf( "您的输入不符合规则,请重新输入:   \n ");
test();
}
printf( "success ");
}
int   main(int   argc,   char   *argv[])
{
test();
}


[解决办法]

int tt[4];
scanf( "%d ", &tt[0]);


-----------------------------


char tt[4];
scanf( "%c ", &tt[0]);
[解决办法]
int tt[4];
scanf( "%d ", &tt[0]);
if(isdigit(tt[0]) == 0)//isdigit判断 '0 '- '9 '才是true,tt是int,你输入的值就必须是 '0 '~ '9 '对应的ascii才行,输入0-9当然isdigit是false,0-9可不是‘0’-‘9’

热点排行