C语言中怎么让输入的数只能为数字,不能为字母,如果是字母就重新输入!

来源:百度知道 编辑:UC知道 时间:2024/05/28 04:44:16
能不能写个判读的啊

#include <cstdio>
#include <cstdlib>
void main()
{
char* ch=(char*)malloc(100*sizeof(char));
scanf("%s",ch);
int num;
num=atoi(ch);
if(0==num)
{
if('0'==*ch)
printf("%d\n",num);
else
printf("您输入了非数字");
}
else
{
printf("%d\n",num);
}

}
已进过测试
有几点需注意
1输入数值不能超过100位数值,当然可将程序中的100改为更大值
2若要输入浮点值,可将atoi 改为atof 函数

要判断数字的ascii码。定义成字符型。

判断asc码48~57为0~9十个阿拉伯数字如果得到的asc码不在48-57就重新输入

int num;
char temp[256];
while(true){
if(scanf("%d",&num)) break;
else scanf("%s\n",temp);
}