C 一个程序说说scanf()判断
一道实例引起了关于scanf()
的一点特性的思考:
#include <stdio.h>
int main(void)
{
long num;
long sum = 0L;
int status;
printf("Please enter an integer to be summed. ");
printf("(q to quit): ");
status = scanf("%ld", &num);
while (status == 1)
{
sum = sum + num;
printf("Please enter next integer (q to quit):");
status = scanf("%ld", &num);
}
printf("Those integers sum to %ld.\n", sum);
return 0;
}
这里用到了:
status = scanf("%ld", &num);
while (status == 1)
很明显赋值是给num
的,那么status
拿来何用?看起来似乎如果输入字符与格式符号不符(不能用%ld
说明符读取),就会返回0,符合则返回1,这样就可以判断输入的是否是指定的格式了。
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。