我想编个计算两个数之和的小程序,然后想利用函数返回值判断输入数据类型是否有误,对“123 abc”这种类型适用,但如果输入“12 12abc”这样的就不行了(输出24,跳过了abc)。请问有什么其他的解决方法能使“12 12abc”这样的数据也能被判定为错?
说的有道理,但具体该怎么操作呢?我是新手,还望多多指教啊
追答等一下,我写个例子
大致的意思是这样,不过写得不够完善,不能对负数或是浮点型的数据进行处理,这些功能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");
}
}
好的,不着急