C语言中关于输入数据类型的问题

我想编个计算两个数之和的小程序,然后想利用函数返回值判断输入数据类型是否有误,对“123 abc”这种类型适用,但如果输入“12 12abc”这样的就不行了(输出24,跳过了abc)。请问有什么其他的解决方法能使“12 12abc”这样的数据也能被判定为错?

lz的意思是不是这样
程序要求输入两组数据,中间用空格最为分隔,必须两组完全都是数字形式的才可以,例如12 12,任意一组有非数字字符出现,就算是输出错误,比如12 12abc
是这个意思吧

lz大概是用的scanf("%d%d",&a,&b);这样类似的形式吧

我的想法是将输入的数据先当两个字符串处理,当两个字符串都完全为数字字符时,再将字符串转成相应的数字,否则直接返回错误追问

说的有道理,但具体该怎么操作呢?我是新手,还望多多指教啊

追答

等一下,我写个例子

大致的意思是这样,不过写得不够完善,不能对负数或是浮点型的数据进行处理,这些功能lz自己去扩充吧,另外也可以用一下库函数,我主要是因为忘了,所以没用库函数实现

#include
int exam(char a[],char b[])
{
while(*a)
{
if(*a'9')
return 0;
++a;
}
while(*b)
{
if(*b'9')
return 0;
++b;
}
return 1;
}
long a2i(char a[])
{
long i=0;
while(*a)
{
i=i*10+*a-'0';
++a;
}
return i;
}
main()
{
char a[100],b[100];
long aa,bb;
printf("intput 2 numbers:\n");
scanf("%s%s",a,b);
if(exam(a,b))
{
aa=a2i(a);
bb=a2i(b);
printf("a=%ld,b=%ld\n",aa,bb);
}
else
{
printf("error!\n");
}
}

追问

好的,不着急

温馨提示:答案为网友推荐,仅供参考
相似回答