2 d2872974998 d2872974998 于 2016.04.25 19:43 提问

while(scanf("%d",&n)!=EOF)

scanf的返回值由后面的参数决定
scanf('%d%d', &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。图片说明图片说明

3个回答

caozhy
caozhy   Ds   Rxr 2016.04.25 23:37

你的问题是什么呢?

CSDNXIAOS
CSDNXIAOS   2016.04.26 08:22

“测试输入包含若干测试实例。当N为0时,输入结束,该实例不被处理。”

这句话 是最早我对ACM的印象 以前也没见过这种输入要求 做第一道题的时候就卡住了 上网看别人的代码 都有一句 while(scanf("%d",&n)!=EOF)

"scanf 函数还能放while里啊... EOF是什么玩意儿呢..."

上网找答案......
答案就在这里:while(scanf("%d",&n)!=EOF)
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

hijack00
hijack00   Rxr 2016.08.21 20:03

函数scanf返回正确读入的参数个数,scanf('%d%d', &a, &b);如果a,b都正确读入返回2,只有a正确读入返回1,a,b都未被成功读入则返回0(这种情况我想像不出来)。
EOF表示"End of File",一般在大多数编译器中该值被定义为-1。scanf返回EOF一般表示读取发生异常,例如读到文件末尾或者用户输入Ctrl+Z,这两种情况都会产生EOF。

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