C中scanf()!EOF的理解
- EOF是文件结尾标志,EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。而在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。
- 实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。 - #include <stdio.h>
int main() - {
- int n;
- while(scanf("%d",&n) != EOF)
- {
}
return 0;
}
当上面的程序运行时,如果不加" != EOF",那么这个程序就是个死循环,会一直运行下去;加上" != EOF"后该程序就不是死循环了,如果在终端不进行输入该程序会自动结束(while的意思就是说当当前输入缓存还有东西时就一直读取,直到输入缓存中的内容为空时停止)。
在这"scanf("%d",&n) != EOF"相当于"scanf("%d",&n) != EOF",或"~scanf("%d",&n)",或"scanf("%d",&n) == 1 " 。scanf的返回值由后面的参数决定, - scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF,且返回值为int型。 - 要注意的是:在终端(黑框)中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾”,因此需要用<Ctrl + z>组合键然后按 Enter 键的方式来告诉系统已经到了EOF,这样系统才会结束while.
C中scanf()!EOF的理解相关推荐
- C++中的cin 深入理解
一.cin简介 二.cin从缓冲区读取数据 1. >> 2. get 3.getline() 4.cin之后使用getline会出现空行,调用cin.ignore()即可 5. 清空输入流 ...
- 对网络中安全审计产品的理解
对网络中安全审计产品的理解<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...
- ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解
转自 ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解 ArcGIS Engine中总调用IFeatureClass ...
- KMP中next数组的理解
next数组是KMP的核心,但对于next数组我们总是有时候感觉明白了,但有时候又感觉没明白,现在我就说下我自己对KMP中next数组的理解,首先next[i]上的数字的意义,next[i]表示的是当 ...
- 串行和并行的区别_入门参考:从Go中的协程理解串行和并行
本文转自公众号语言随笔,欢迎关注 入门参考:从Go中的协程理解串行和并行mp.weixin.qq.com Go语言的设计亮点之一就是原生实现了协程,并优化了协程的使用方式.使得用Go来处理高并发问题 ...
- 高性能计算中并行的概念理解
高性能计算中并行的概念理解 分类: 并行计算高性能计算HPC - General2011-11-09 22:54 932人阅读 评论(0) 收藏 举报 编译器编程parallel优化formsvect ...
- PYTHON__关于Socket中的Select使用理解
关于Socket中的Select使用理解 以下是代码和中文注释的个人理解 import socket, select, Queueserver=('192.168.2.100',10086)#创建TC ...
- python self 值自动改变,在python中对self的理解
在python中对self的理解 : 一.self的位置是出现在哪里? 首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本 ...
- 谈谈对python的理解_浅谈对python pandas中 inplace 参数的理解
这篇文章主要介绍了对python pandas中 inplace 参数的理解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 pandas 中 inplace 参数在很多函数中都会有, ...
最新文章
- 【ACM】杭电OJ 1284(待更)
- [ZJOI2012]灾难
- CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化
- 第一类斯特林数学习记录
- 自研海外PCDN系统技术架构与演进
- ELF文件和BIN文件
- 项目构建之springboot集成lomback.xml,和log4j基于properties方式的日志配置记录
- python实现端口转发_Python TCP/IP协议下实现端口转发及重定向菜鸟教程
- mysql为何不支持开窗函数?
- Linux查看so库访问的IP,linux-ip命令杂记
- jquery audio没有声音_Audio-technica 铁三角 ATH-DSR7BT 头戴式蓝牙无线耳机测评报告 [Soomal]...
- 第四次作业3 四则运算试题生成
- 经典排序算法(十)--希尔排序Shell Sort
- jQuery post使用变量作参数名
- 动易html编辑器漏洞,动易2006_SP6最新漏洞得到管理员密码
- JAVA之stream汪文君_Java进阶篇之十五 ----- JDK1.8的Lambda、Stream和日期的使用详解(很详细)...
- Ubuntu桌面美化教程
- Python---贪心的狗熊
- html前端使用高德地图入门教程,并在地图上标记位置
- php天下第一的梗,DNF中那些怪梗盘点,最后一个已经被99%的玩家遗忘了
热门文章
- ES6的简单的整理与应用
- From d2l import torch as d2l 报错
- VBA每日一练(22),VBA 的 scripting 类库 (scrrun.dll) 和 fso 详细学习
- php xcahe安装,yum安装实现lamp分离及Xcache加速
- 显示器接口_Mac 用户超好用的显示器,色彩完美还接口多
- 推荐系统学习笔记-论文研读--点击率预估中特征交互的作用
- JDBC原理,JDBC基础编程
- 沟通口才培训:学好精准表达!
- 【光学】基于matlab实现单缝衍射
- python理解浮点数运算的误差_浅谈浮点数运算的误差