做acm练习题时偶然发现一个奇特的现象:
while(scanf("%d %d", &a, &b) != EOF)与 while(scanf("%d %d", &a, &b) == 2)
是等价的。
百度后发现:
原来scanf()函数是有返回值的,并且返回值是等于正确输入的个数:
举个例子: 1.我输入的是 a = 1, b = 2, 那么用一个int x来接收scanf()的返回值得到的结果是 x = 2
2. 如果我输入的是 a = 1, b =q, 那么 x = 1
但是自己尝试后貌似并不止这样 :
(先附上源码)
#include <stdio.h>                                                                
int main()                                                                        1> 当我输入 a = q时,程序直接输出x = 0后退出,
{                                                                                       2>当输入 a = 1, b = ctrl +z (EOF)时,需要再次输
    int a,b;                                                                              入一个ctrl + z程序才能正常结束,x = 1
    int x;                                                                            3>当输入 a = ctrl + z时,x = -1 程序直接结束
    x = scanf("%d %d", &a, &b);
    printf("%d", x);
    return 0;
}
通过几轮尝试发现:scanf()函数貌似是每输入一个参数检索一次,如果第一次检索到EOF那么程序将不再往下
运行而是直接返回-1,同理当检索到非正常输入时也直接返回0不再往下检索。

最后附上一些参考的资料:http://blog.csdn.net/Linuxxulin/article/details/7018321点击打开链接

C语言scanf()返回值以及EOF相关推荐

  1. c语言scanf返回值

    c语言scanf返回值 1. scanf 函数是有返回值的,它的返回值可以分成三种情况   1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", & ...

  2. c语言scanf返回值被忽略,scanf返回值问题

    在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例 ...

  3. c语言scanf返回值错误,c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...

  4. c语言scanf返回值问题

    scanf函数返回值: 1.scanf()函数有返回值且为int型.     2.scanf()函数返回的值为:正确按指定格式输入变量的个数:也即能正确接收到值的变量个数.         例如:sc ...

  5. C语言scanf返回值怎么写,C语言 scanf 返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...

  6. scanf 返回值_scanf函数

    一.函数 scanf()是C语言中的一个输入函数.与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>.它是格式输 ...

  7. C语言return的用法详解,C语言函数返回值详解。 (本次转载仅供学习,感谢原创!!转发自C语言中文网,如有侵权请私信本人删除)

    C语言return的用法详解,C语言函数返回值详解 转载:http://c.biancheng.net/view/1855.html 函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这 ...

  8. scanf返回值被忽略的原因及其解决方法

    昨天在使用Visual Studio 2019编写C语言程序时遇到了scanf返回值被忽略问题 因为我也是刚开始使用VS2019学习C语言,第一次遇到这种问题,也不知道怎么回事,然后就上Chrome研 ...

  9. scanf返回值被忽略的原因及其解决方法(vs2019)

    在使用Visual Studio 2019编写C语言程序时相信大家都遇见了scanf返回值被忽略这个问题 存在的问题就是scanf函数输入不安全,其实在vs编译器环境下,这种不安全的函数有很多. 为了 ...

最新文章

  1. 什么是REST?以及RESTful
  2. html实体编码遇上js代码
  3. chrome xp 扫描此文件时,防病毒软件意外失败
  4. boost::container模块实现抛出异常
  5. Win10上线摸鱼神器,已经被玩疯了!
  6. 公众号 采集 java_Java实现公众号数据的抓取
  7. android 自定义xml属性
  8. 【快报】基于K2 BPM的新一代协同办公门户实践交流会
  9. linux学习-使用DHCP动态管理主机地址
  10. arduino读取水位传感器的数据显示在基于i2c的1602a上_构建Arduino的LoRa远程智能空气质量监测系统...
  11. 解决Android拍照保存在系统相册不显示的问题
  12. libvirt 安装篇
  13. OICQ登录号码清除器实现原理 (转)
  14. 上位机和下位机之间局域网的搭建
  15. Linux终端快捷键的使用
  16. Ubuntu Linux
  17. 一文获取36个Python开源项目,平均Star 1667,精选自5000个项目
  18. 刷牙也有如此强大的“黑科技”?------艾优电动牙刷深度体验
  19. keras 多输入多输出网络
  20. pwm c语言程序,pwm 调制程序(c)

热门文章

  1. 上海市大数据技术与应用创新中心成立
  2. 试题 算法提高 Monday-Saturday质因子
  3. 仿百度贴吧回帖功能分析及代码示例
  4. 知识图谱基础知识之三——知识图谱的构建过程
  5. 输入一串字符,并判断其中英文字符和数字字符的个数——C语言实现(C语言练习)
  6. HAOI 2017 游记
  7. 二叉搜索树:红黑树的原理和实现
  8. UserWarning: X does not have valid feature names, but MLPRegressor was fitted with feature names w
  9. 多区域复制——《超级处理器》应用
  10. 一位博士论文的致谢部分