!=EOF的含义和原理
来源:互联网 发布:苹果抹除数据后会怎样 编辑:程序博客网 时间:2024/06/03 16:06
在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;}
阅读全文
1 0
- !=EOF的含义和原理
- C语言对EOF含义的理解
- SNIFFER的含义和工作原理
- FIFO、LRU、LFU的含义和原理
- FIFO、LRU、LFU的含义和原理
- FIFO、LRU、LFU的含义和原理
- C语言EOF含义
- EOF的含义与scanf的返回值
- getchar()和EOF的问题
- EOF和BOF的理解
- feof()和EOF的用法
- linux 和 window 的EOF
- cat和EOF的简介
- EOF和BOF的区别
- EOF 和“EOF”
- Windows 下EOF 和 Linux 下EOF的区别
- 从while(scanf() != EOF)说到ACM OnlineJuge的评判原理
- 从while(scanf() != EOF)说到ACM OnlineJuge的评判原理
- 拷贝函数之类型萃取
- Hadoop(1) : Linux下安装Java环境配置步骤详述
- java创建一个基本窗体
- springcloud框架下采用Grpc实现远程过程调用
- null和undefined的区别
- !=EOF的含义和原理
- 正则表达式
- 最小路径和
- Service启动流程源码分析(一):startService
- Caffe实战系列:实现自己Caffe网络层
- 隐式的类类型转换
- R语言-数据框
- 单线程爬虫
- 学习笔记之WEB平台自定义标签库