C语言中怎样才能只输入阿拉伯数字?

2025-04-03 10:08:11
推荐回答(5个)
回答1:

我建议你这样处理,采集的数据作为字符型录入,当然要考虑录入数据的长度,这样可以放在字符串里,根据所得数值每个字节与ASII码对比,在0x30~0x39之间的数都是阿拉伯数字,其余是字母和符号。前提是你要设置好字符串长度,如果只是一个字节就scanf("%c",&a);一个字节就可以了。

回答2:

void main()
{
char input[20];
int n,i;
bool m_bNum=true;
scanf("%s",input);
while (true)
{
m_bNum=true;
for (i=0;i<20&&input[i]!='\0';i++)
{
if (!(input[i]>='0'&&input[i]<='9'))
{
m_bNum=false;
break;
}
}
if (m_bNum==true)
{
break;
}
printf("请输入数字!\n");
scanf("%s",input);
}

n=atoi(input);
}

先用字符串来接收输入数据,然后用atoi函数进行转换就可以了!

回答3:

用conio.h库中的函数getch(),在接收用户输入的字符时进行判断,在转化为相应的数字。
你可以试试。
#include
#include
void main()
{
int num=0;
char c;
puts("请输入数字");
while(c=getch())
{
if(c>='0' && c <='9')//只能输入0~9
{
putchar(c);//getch函数不回显输入的字符
num=(num*10+(c-'0'));
}
else if(c=='\r')//换行符结束输入
break;
else
{
puts("输入非法,重新输入");
num=0;
}
}
printf("\n输入的数字=%d\n",num);
}

回答4:

如果个位数就好办,字母会大于10吧

回答5:

#include

void main()
{
int i;
printf("请输入数字:");
scanf("%d",&i);
if(scanf==0)
printf("请正确输入");
}