2 chenyonken chenyonken 于 2016.01.30 21:05 提问

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

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

2个回答

91program
91program   Ds   Rxr 2016.01.30 21:49
已采纳

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

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

chenyonken
chenyonken EOF的意思识如果我没输入两个数字就会结束循环吗
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.30 23:38
 #include<stdio.h>
int main()
{ 
    int a,b;
    while(scanf("%d%d",&a,&b)==2) //2个数字,正常参数
    {
        printf("%d\n",a+b);
    }
}

你可以这么写

运行
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!