在ACM中经常遇见过这种情况,今天就来详细总结一下。(以while (scanf("%d", &a) != EOF)为例)

1.EOF是一个宏,许多函数(包括scanf)在读文件读到末尾时,会返回EOF。

2.OJ评判的原理:

输入:通过管道命令,将一个包含若干测试用例的文件作为【标准输入流】,所以需要while(scanf() != EOF)来判断测试文件是否读完。

输出:通过管道命令,将【标准输出流】,输出到一个文件中。

3.评判:将程序的【输出文件】与【正确答案文件】进行比对:如果一样,则返回程序正确提示;否则,返回错误提示。

4. 本机运行程序时,该语句的作用:

当在本机运行程序,运行while(scanf() != EOF)时,程序会进入阻塞状态,即,

运行到上面流程图中【temp = scanf("%d", &a)】这一句 时,程序会进入到阻塞状态——在这一语句处暂停。

5.那么如何在本机输入的时候达到EOF的效果呢?

Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF;

Windows中,Ctrl-Z表示EOF。

6.等效语句:

该语句用起来很方便,初学者却不太好理解,可以用以下语句来代替该语句。

while(1)
{if(scanf("%d",&a) != EOF)break;
}

!=EOF的含义和原理相关推荐

  1. 计算机故障的分析原理,蓝屏含义、原理分析、处理方法 电脑计算机故障系统安全...

    目录 1含义2原理分析3处理方法4代码含义和解决 5原因分析6预防电脑蓝屏的 含义 引蓝屏解释 1.故障检查信息 ***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x ...

  2. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理

    transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理 1.问题描述 问题来源于pytorch实现CNN神经网络的示 ...

  3. pwm占空比的c语言编程详解,盘点占空比、PWM、GPIO三者含义及原理分析

    (1)占空比(Duty Cycle)有如下含义: 在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值.例如:脉冲宽度1μs,信号周期4μs的脉冲序列,占空比为0.25. 即在一段连续 ...

  4. TRIZ系列-创新原理-31-多孔材料原理

    多孔材料原理的具体描述如下: 1)让物体变成多孔的,或者使用辅助的多孔部件(如插入,覆盖): 2)如果一个物体已经是多孔了,那么事先往里面填充某种物质: 这个原理提出的原因是,一般机械系统通常都是由没 ...

  5. 蓝屏含义原理分析处理方法代码电脑计算机故障系统安全 - 蓝屏知识大全

    目录 1含义2原理分析3处理方法4代码含义和解决-5原因分析6预防电脑蓝屏的-   含义 引蓝屏解释 1.故障检查信息 ***STOP 0x0000001E(0xC0000005,0xFDE38AF9 ...

  6. 后门BROOTKIT代码学习和原理分析

    周末闲来无事,想找点东西学习一下,随手翻到了之前看到的一篇关于brootkit的文章,知道它是用Bash写的一个后门程序.刚好最近在做Bash相关的工作,就想着学习一下这方面的知识,稍作整理之后就有了 ...

  7. 关于EOF和读文件的一些事

    到底什么是EOF?这是一个问题.一般而言,EOF字面含义就是文件的结尾-end of file,可是如何去检查是否已经到了结尾呢?文件类型各种各样,不可能在文件的结尾处真实的写一个EOF标志,如果真的 ...

  8. C语言中EOF的用法及不同环境下的使用

    C语言中EOF的含义是end of file,即文件结束符,但是不仅仅是在文件中使用,在输入的时候也可以使用.EOF的值是-1.在文本文件中才能使用EOF作为结束符.在使用scanf输入的时候,如果输 ...

  9. git学习(三)分支管理

    分支管理 git学习参考 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.分支作用 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交 ...

最新文章

  1. Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
  2. HTML之Position用法
  3. 【原】P2P应用的探究
  4. 同志亦凡人第五季/全集BQueer As Folk 5迅雷下载
  5. CSS3(animation, trasfrom)总结
  6. linux 移动硬盘 优化,不花一分钱,给移动硬盘加速
  7. iOS:Resource Programming Guide
  8. 计算机学win7画图,利用windows画图工具新功能,制作简易3D画图很简单了!-win7画图工具...
  9. 【翻译】 Unity3D VR 教程:1.VR概述
  10. 画笔Paint及模拟画图工具
  11. CSR蓝牙开发调试经验
  12. 静态变量和静态方法编程训练—信用卡消费记录
  13. mtk无线网卡 linux,模块编译问题 给MTK芯片的wifi网卡编译linux驱动 系统是mint
  14. 【弄nèng - Zookeeper】Zookeeper入门教程(三)—— 客户端Curator的基本API使用(Curator framework)
  15. HCNA安全学习笔记
  16. python:http.server --- HTTP 服务器
  17. c语言:判断字符串是否符合手机号码格式
  18. 数据分析初回-探索性数据分析
  19. 程序员求职之道(《程序员面试笔试宝典》)之面试笔试技巧?
  20. betaflight 代码结构

热门文章

  1. CTF-Crypto 密码解密python脚本(一)
  2. 国内定制android系统吗,同样都是基于Android系统 国产定制系统差异有多大?
  3. html中scr作用,车用尿素在SCR系统中的作用讲解?
  4. 10.6 自注意力和位置编码
  5. 01--背包问题以及构造最优解
  6. HX711称重模块的使用
  7. ajax同步和异步区别
  8. 必读论文 | 生成对抗网络经典论文推荐10篇
  9. ES6 Set数组操作
  10. .cast( )函数的使用