| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7638 人关注过本帖
标题:while(~scanf("%d%d", &a, &b))printf("%d\n",a+b);这句不明 ...
取消只看楼主 加入收藏
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
while(~scanf("%d%d", &a, &b))printf("%d\n",a+b);这句不明
#include<stdio.h>
int main(){
    int a,b;
    while(~scanf("%d %d", &a, &b))printf("%d\n",a+b);
    return 0;
}

我大概能明白可以一直输入俩数,然后不断输出两个数的和,但是这个while怎么开始?又怎么结束呢?还有这个"~"的作用是什么?
搜索更多相关主题的帖子: return 
2017-05-03 08:42
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
收藏
得分:0 
以下是引用吹水佬在2017-5-3 10:00:11的发言:

~-1 为 0,就是说 scanf()返回-1(EOF)时跳出循环。


那什么时候scanf()返回-1呢?是在输入内容无效的时候么?

除了基础……我什么都不会……
2017-05-03 10:20
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
收藏
得分:0 
Ctrl+D在Linux经常用,没想到就是这个啊……

以下是引用rjsp在2017-5-3 10:28:37的发言:

while( ~scanf("%d %d", &a, &b) )
应当写成
while( scanf("%d %d", &a, &b) == 2 )

在ACM比赛时,选手知道不会出现非法或残缺的数据,所以为了节约时间,写成第一种格式


这个的确是什么ACM的题,ACM是赛什么的?…………不重要……
while( scanf("%d %d", &a, &b) == 2 )又是啥?……我有点懵了……
话说~scanf()是-1么?还是说Ctrl+D生成的EOF是-1?

除了基础……我什么都不会……
2017-05-03 15:10
快速回复:while(~scanf("%d%d", &a, &b))printf("%d\n",a+b);这句不明 ...
数据加载中...
 
   



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

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