scanf返回值和多组输入

您所在的位置:网站首页 scanf返回值-1 scanf返回值和多组输入

scanf返回值和多组输入

#scanf返回值和多组输入| 来源: 网络整理| 查看: 265

一.如果scanf读取成功,返回的是成功赋值的数据项数。如下,

 scanf读取了两个有效的数字,输出2。(注意组合键后面要加enter,vs要输三次,其他编译器一般只输一次)。

这种直接输EOF的方法看似可行,但不可取,在循环中都会死循环,是错的,是用^z输出EOF。

 EOF和是输入输出流结束标志。

二.如果scanf读取失败,返回EOF,EOF的值是-1

三.利用EOF输入多组数据 (遇到键盘结束符^Z或文件结束符EOF时结束输入)

1.用while (scanf("%d", &a) != EOF)

 2.用while (~scanf("%d", &a) )

 ~是按位取反运算符,因为EOF本质上是-1,按位取反后变成0,为假,终止循环。

3.可以加上逗号运算符

(灵感来源EOF的用法(while(scanf(“%d“,&n) != EOF))和~取反的用法(while(~scanf(“%d“,&n)))_scanf eof_diviner_s的博客-CSDN博客)例如while(scanf("%d%d",&a,&b) != EOF,a || b),a || b 代表两者都为0结束,a && b 代表任意一个是0就结束 ,但EOF和^z结束不了。(逗号表达式从左向右依次计算,最后一个表达式的结果是整个表达式的结果)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3