zoukankan      html  css  js  c++  java
  • 持续输入问题

    scanf()函数是有返回值的,成功读入的数据个数其返回值,没有数据被读入,返回0,如果发生错误,则返回EOF。
    scanf()函数是读入函数的之一,还有用于数据文件读入的fscanf()等。fscanf()在遇到文件结束符时返回EOF。

    char a[3];

    while(scanf("%s",a)!=EOF)     它和while(cin>>a)或者while((cin>>a)!=0)是等价的  (这里用scanf恰好体现了半文件式输入的特点)

    fun(a);

    需要强调的是:

    EOF文件结束符是只在文件末尾才有的。之所以在这里给scanf挂EOF,原因是测试时的输入是基于文件输入的。(我们做题目的平台也是如此)这也正是命令行中运行时,需要手动给出ctrl+z的原因(这也恰好是之前那个while(scanf==1)的问题:代码在平台上运行没有问题,自己在本地运行时却始终结束不了,必须手动输入EOF)

    。这种输入我们可以把它称之为半文件式的输入(文件末尾会模拟输入EOF),不过这里用的不是文件式的输入,而是cin或者scanf而已。

    另外,每次执行循环时,while都会重新输入a,然后执行循环里对a的操作,也就是读完之后操作自己读的内容,之后再读下一次。

    如果每次需要操作一个而不是一行,那么就只需把scanf里的参数换成char c即可。(文件的读入和这个也是一样的)

    还需要强调的是,要注意和文件中读入挂EOF的相同和区别的理解。文件中挂EOF时,就不是从键盘输入了(叫它全文件型的读入,哈哈)

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    [IDEA]高级用法
    [TongEsb]Windows入门教程
    [MAC] JDK版本切换
    [下划线]换行自适应稿纸完美方案
    [IDEA] Jrebel热部署环境搭建Mac
    Python规范:用用assert
    Python规范:提高可读性
    Python规范:代码规范要注意
    计算机网络自顶向下方法--计算机网络中的安全.2
    Python进阶:程序界的垃圾分类回收
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13656405.html
Copyright © 2011-2022 走看看