标题:C语言问题!
只看楼主
a505720273
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-8-17
结帖率:100%
已结贴  问题点数:20 回复次数:2 
C语言问题!
题目如下:

计算a加b。
两个整数a和b,其中0≤a, b≤10。
输出a与b的和。


答案如下:
#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b) != EOF)
    {
        printf("%d\n", a+b);
    }
    return 0;
}


为什么是这样啊 while(scanf("%d%d",&a,&b) != EOF)
里面为什么用while啊   !=EOF  是什么意思啊
搜索更多相关主题的帖子: TAG 
2009-08-17 15:32
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
得分:5 
这个地方的EOF就是ctrl+z,表示文件结束。。。end of file
这个地方的while循环表示无限次的啊,只要你不按ctrl+z组合键,循环就不会结束。
你这段代码执行的时候你会发现输入字母会出现死循环。。。。
输入语句之后应该放个fflush(stdin)或者getchar()
2009-08-17 15:48
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:15 
while(scanf("%d%d",&a,&b) != EOF)

EOF 相当于-1
scanf函数会反回一个非零或0的整型值,也就是 1 和 0
当输入ctrl+z,scanf函数反回-1,这时循环才结束。

给你个代码实验一下。
#include <stdio.h>
main()
{
 int x,y;
 while(1)
   {
    x=scanf("%d",&y);
    printf("%d %d\n",x,EOF);
    if(x==EOF)
     {
      printf("x==EOF\n\n");
      break;
     }
   }
}
收到的鲜花
  • a5057202732009-08-18 10:20 送鲜花  3朵  

努力—前进—变老—退休—入土
2009-08-17 16:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283021-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029401 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved