C语言再学习 -- EOF、feof函数、ferror函数
来源:互联网 发布:巴啦啦小魔仙玩具淘宝 编辑:程序博客网 时间:2024/06/05 00:59
EOF详解
EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。
EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。#define EOF (-1)
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。
1)将getchar()的返回值与EOF进行比较。如果不相同,则你还没有到达文件结尾。换句话说,你可以使用如下表达式:
while ((ch = getchar ()) != EOF)
在Unix系统中,你能通过在一行开始键入Ctrl+D来从键盘模拟文件结束条件;DOS系统则使用Ctrl+Z来达到这个目的。
顺便提一句,Linux中按下Ctrl+Z,表示将该进程中断,在后台挂起,用fg 命令可以重新切回到前台;按下Ctrl+C表示终止该进程。
如果真的想输入Ctrl+D,则必须先按下Ctrl+V,然后就可以输入Ctrl+D,系统就不会认为这是EOF信号。Ctrl+V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl+V,连续输入两次就行了。
函数原型:
int feof(FILE * stream);
所在头文件:
stdio.h
返回值:
返回非零值代表已到达文件尾
EOF与feof函数区别
ferror()函数
函数原型:
int ferror(FILE *stream)
返回值:
如果设置了与流关联的错误标识符,该函数返回一个非零值,否则返回一个零值。
函数描述:
ferror,函数名,在调用各种输入输出函数(如 putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。 它的一般调用形式为 ferror(fp);如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件 每一次调用输入输出函数,均产生一个新的ferror函 数值,因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。
- C语言再学习 -- EOF、feof函数、ferror函数
- C语言再学习 -- EOF、feof函数、ferror函数
- 文件检测函数 ferror feof
- feof(),ferror()文件检测函数
- 文件检测函数 feof, ferror,clearerr C库函数
- 文件检测函数 feof, ferror,clearerr C库函数
- 文件检测函数 feof, ferror,clearerr C库函数
- feof()函数以及EOF
- C语言中的feof函数
- C语言feof()函数用法.
- EOF与feof()函数关系
- C语言中的EOF和feof()
- c语言文件中EOF和feof
- C语言中的EOF和feof()
- C语言中的EOF和feof()
- C语言中的EOF和feof()
- feof ferror
- linux C编程中EOF宏和feof函数的用法
- 声明式异常使用全局处理
- git——git flow的安装
- Retrofit源码解析
- Git基础-提交更新到仓库(二)
- React 点击删除列表中对应项(React 获取DOM中自定义属性)
- C语言再学习 -- EOF、feof函数、ferror函数
- TCP 的状态
- 2017年系统分析师架构师备考之路(二)——数据库系统
- 线性筛打素数表
- 技术是工具,软能力才是发展的加速器!
- illegal to have multiple occurrences of contentType with different values 解决
- OpenCV--边缘检测-Canny()-copyTo()
- openwrt中luci界面配置说明
- Python学习笔记(二):文件读写