S1E14中scanf返回值问题
int a,b;scanf("%d%d",&a,&b)
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
以上是网上的解释
所以怎么才算成功读入,比如输入两个整型就算成功读入,如果输入字符型就不可以?
还有他上面的意思好像是说返回值为int型,还有不为int型的函数吗
以下代码注释中还有个问题
#include <stdio.h>
int main()
{
int num = 0;
long sum = 0L; // 0L表示类型为long的0
int status;
do
{
printf("请输入合法的数字:");
sum = sum + num;
status = scanf("%d", &num); //这里的意思是如果输入为整型成功读入status的值就为1,如果为字符型失败就为0?
} while(status == 1);
printf("结果是:%ld\n", sum);
return 0;
}
谢谢! 输入字符型不可以,不能和printf搞混,printf你可以用d去打印一个字符常量,但在scanf中不行,d只能读整数,c只能读字符
页:
[1]