多组数据while--scanf输入(C语言)
一、scanf()函数
1. scanf 函数是有返回值的,它的返回值可以分成三种情况
- 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。- 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
- EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。
二、代码演示
<mark>写法一(返回值)</mark>
#include<stdio.h>
int main()
{
int x,y;
while(scanf("%d %d",&x,&y)!=-1)
{
printf("%d",x+y);
}
return 0;
}
<mark>写法二(EOF)</mark>
#include<stdio.h>
int main()
{
int x,y;
while(scanf("%d %d",&x,&y)!=EOF)
{
printf("%d",x+y);
}
return 0;
}
<mark>写法三(~)</mark>
#include<stdio.h>
int main()
{
int x,y;
while(~scanf("%d %d",&x,&y))
{
printf("%d",x+y);
}
return 0;
}
三、测试
<mark>结束时键入Ctrl+Z</mark>