eof在c语言中表示什么

eof在c语言中表示什么

文件结束符

eof在c语言中表示文件结束符。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII码值的形式存放的。

在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。

一般C在读取数据时,都是按流模式进行数据读操作,这里的流可以是文件,也可以是标准输入。EOF可以表示文件结尾,还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

文本文件中存储的是 ASCII 码,而 ASCII 码中 FF 代表空值(blank),所以如果读文件返回了 0xFF,也就说明已经到了文本文件的结尾处。也就是说,在语句“while((c=fgetc(fp))!=EOF)”中,当读取的字符为 0xFF 时,子语句“c=fgetc(fp)”中的“fgetc(fp)”的值由 0x000000FF 转换为 char 类型(即 c 等于 0xFF);而在执行子语句“c!=EOF”时,字符与整数比较,c 被转换为 0xFFFFFFFF,条件成立,遇到空格字符时就退出。由此可见,如果是二进制文件,其中可能会包含许多 0xFF,因此不能把读到 EOF 作为文件结束的条件,而此时只能使用 feof() 函数。