我正在从一本书中学习C,我开始使用循环指令.但是有一个我无法理解的示例代码.
谁能告诉我作者为何使用过status = scanf("%ld", &num);?为什么有一个=用scanf?
/* summing.c -- sums integers entered interactively */
#include <stdio.h>
int main(void)
{
long num;
long sum = 0L; /* initialize sum to zero */
int status;
printf("Please enter an integer to be summed ");
printf("(q to quit): ");
status = scanf("%ld", &num);
while (status == 1) /* == means "is equal to" */
{
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;
}
Run Code Online (Sandbox Code Playgroud)
请看看在手册页的scanf().它返回成功扫描的项目数.所以返回值用于检查的成功scanf().
在你的代码中,
status = scanf("%ld", &num);
// code
while (status == 1)
Run Code Online (Sandbox Code Playgroud)
将返回值scanf()存储到status后面并检查以检查是否scanf()已成功扫描1项目.
1,则表示long int已输入.然后while()循环将继续,请求下一个输入.q,它将与coversion说明符不匹配%ld,因此scanf()会失败,因此它将返回0.然后while()循环将终止.| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |