c 语言 菜鸟问题

while(scanf("%d%d",&a,&b)!=EOF)为啥可以这样使用啥意思具体是谢谢... while(scanf("%d %d",&a,&b)!=EOF)
为啥可以这样使用
啥意思具体是
谢谢
展开
 我来答
raef_beyond
2012-04-20 · TA获得超过1651个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:232万
展开全部
1. scanf 函数原型
  int scanf( const char *format, ... );   
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。   
其调用格式为: scanf("<格式化字符串>",<地址表>);   
函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。
2. scanf的返回值
  scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。   
如:   scanf("%d,%d", &a, &b);   
如果a和b都被成功读入,那么scanf的返回值就是2   
如果只有a被成功读入,返回值为1   
如果a和b都未被成功读入,返回值为0   
如果遇到错误或遇到end of file,返回值为EOF。   
且返回值为int型.

3. 所以while(scanf("%d %d",&a,&b)!=EOF) 的意思就是说 当读入a和b的值没有遇到错误或者没有遇到end of file时, 。。。
xoalyg
2012-04-20 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2369万
展开全部
scan()函数有返回值,正常时返回成功读入数据的个数,失败(这个失败令人费解)时,返回EOF(End Of File) = -1,在语句while(scanf("%d %d",&a,&b) != EOF)中,用scanf()函数的返回值与EOF比较,不同时,则表示读入成功(这可不一定可靠),问题是,你怎么能够提供这个EOF呢?
所以建议这样使用:
while(scanf("%d %d",&a,&b) == 2)
表示成功读入两个整数时,则继续,反之则结束循环,那么又怎样结束循环呢?只需输入任意一个或多个(如果你愿意的话)英文字母即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果果糖ka
2012-04-20
知道答主
回答量:9
采纳率:0%
帮助的人:6.3万
展开全部
scanf()函数是有返回值的,返回值等于你输入值的个数,例如scanf("%d %d",&a,&b)输入两个整型数之后的返回值是2,2当然不等于无法读取更多资料。所以循环可以一直执行。想结束循环在windows中按Ctrl+z.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坠赎
2012-04-20
知道答主
回答量:10
采纳率:0%
帮助的人:4.3万
展开全部
EOF=-1;
scanf();函数出错会返回-1,即EOF。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式