一、scanf()函数

1. scanf 函数是有返回值的,它的返回值可以分成三种情况

  1. 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
    如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
    如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
  2. 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
  3. 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>