在下面的程序中,代码 scanf(“%d%d”,& a,& b)== 2 是做什么的?
程序获取两个数字并打印总和:)
#include <stdio.h>
int main(void)
{
int a, b;
while (scanf("%d %d", &a, &b) == 2)
printf("%d\n", a+b);
return 0;
}
答案 0 :(得分:2)
scanf
返回成功填写的参数列表的项目数
在这个程序中,这意味着如果输入成功,结果将被打印并进入下一个循环
参考scanf
答案 1 :(得分:2)
函数scanf
根据作为第一个参数提供的格式说明符扫描输入。
%d
是十进制整数的格式说明符,因此如果要匹配由空格分隔的两个数字,请使用%d %d
。
其他参数是应该写入匹配数字的指针。
函数'scanf'返回成功匹配项的数量。只要在用户提供的输入中有两个匹配的数字,就会重复'while'循环。
答案 2 :(得分:1)
(scanf)返回值:成功分配的接收参数数,如果在分配第一个接收参数之前发生读取失败,则返回EOF。
这意味着,有问题的陈述意味着:当scanf成功读取两个整数参数时。
答案 3 :(得分:0)
来自CC标准
Returns
3 The scanf function returns the value of the macro EOF if an input failure occurs before
the first conversion (if any) has completed. **Otherwise, the scanf function returns the
number of input items** assigned, which can be fewer than provided for, or even zero, in
the event of an early matching failure
因此,while循环中的条件检查用户是否输入了两个项目(数字)。
while (scanf("%d %d", &a, &b)==2)
答案 4 :(得分:0)
Scanf()
返回一个整数值,该值只是scanf()
函数接受的输入数量。
scanf("%d %d", &a, &b)
将返回2,现在我们的声明变为
while(2 == 2)
{
// block of code
}
即2==2
为真,这意味着:
while(1)
{
// block of code executed
}