最后的结果2是在输入两个1后得出的,为什么等我再输入两个数据(2)在按回车后才出现结果,EOF?

#include
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
}图片说明

scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
也就是说正常不应该返回 EOF ,即 -1 的。

由于是一个 while 循环,是否可以认为回车换行符被错误的输入而导致错误出现!所以,建议 你将 a 和 b 的数值输出看看。

 #include<stdio.h>
int main()
{ 
    int a,b;
    while(scanf("%d%d",&a,&b)==2) //2个数字,正常参数
    {
        printf("%d\n",a+b);
    }
}

你可以这么写

运行
图片说明