首页

文章

c语言中的EOF是什么意思?

发布网友 发布时间:2022-03-27 16:07

我来回答

8个回答

热心网友 时间:2022-03-27 17:36

EOF是End Of File的意思,在C语言中定义的一个宏,用作文件结束标志。从数值角度看,就是-1。

从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。

在UNIX和AmigaDOS中,将击键翻译为EOF的过程是由终端的驱动程序完成的,因此应用程序无需将终端和其它输入文件区分开来。

Unix平台的驱动程序在行首传送一个传输结束字符(Control-D,ASCII编码为为04)来指明文件结束。

在AmigaDOS中,驱动程序传送一个Control-\来指明文件结束(而Control-D被用作中断字符)。要向输入流中插入一个真正的Control-D字符,用户需要把一个“引用”命令字符放在它的前面(通常是Control-V,表示下一个字符不作为控制字符,而是按照字面量使用)。

在微软的DOS和Windows(以及CP/M和许多DEC操作系统)中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control-Z,代码26)。

一些MS-DOS程序,包括部分微软MS-DOS的shell(COMMAND.COM)和操作系统功能程序(如EDLIN),将文本文档中的Control-Z视为有意义数据的结尾,并且/或者在写入文本文档时将Control-Z添加到文档末尾。这是由于两个原因:

1、向后兼容CP/M。CP/M的第1版与第2版的文件系统以128字节“块”的倍数记录文件长度,所以当有意义数据在一个“块”的中间结束时,习惯上用Control-Z字符来标记它,此后至块结尾的字节为未利用。而MS-DOS文件系统总会记录文件确切的字节长度,所以在MS-DOS中文件不再必需以Control-Z字符来标记结尾。

2、它使得应用程序在从终端和文本文档读取数据时得以使用相同的代码。

概念:

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

应用:

档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。

C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

例如:

在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z。在某些例子处理纯文字档案或从"字元设备"读入资料,微软MS-DOS的 shell 或系统程序会加入ASCIIControl-Z 字元到磁碟档案结束处 (尽管基本核心MSDOS.SYS档案写入呼叫从未附加 Control-Z)。这是向下相容于一些奇特的CP/M功能,从CP/M 档案系统只能就记录的档案长度分配多少 128 位元 "记录"。MS-DOS 档案系统从一开始就能精确的记录档案的位元长度。

ASCII控制字符在字元串流是 out-of-band 不可列印字元。通常表可读的助忆码。

在控制台要输入eof的话 按ALT+65535就可以了。

与feof:

C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志。为解决这个问题,ANSI C提供一个feof函数,用来判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为1,否则为0.feof函数既可用以判断二进制文件是否结束,也可以用以判断文本文件是否结束。[1] 

例如:编写程序,用于把一个文本文件(源文件)复制到另一个文件(目的文件)中。源文件名为file_a.dat,目的文件名为file_b.dat。程序如下:

EOF 函数:

返回一个数值(整数类型Integer),它包含布尔值Boolean值True,表明已经到达为Random(Open语句方法)或顺序Input (Open 语句方法)打开的文件的结尾。

语法:

EOF(filenumber)

必要的filenumber参数是一个Integer,包含任何有效的文件号。

说明:

EOF (End Of File)

使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。

直到到达文件的结尾,EOF函数都返回False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。

热心网友 时间:2022-03-27 18:54

EOF为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。

DO while not EOF(1)解释:判断当eof(1)的值为true时停止do循环。

使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。

直到到达文件的结尾,EOF函数都返回False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。

扩展资料

EOF(filenumber):必要的filenumber参数是一个Integer,包含任何有效的文件号

EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。

BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。

EOF一般是指结尾,比如:SQL 中指针到最后一个 Rs.EOF = True 时,eof是判断SQL取出来的记录是否到末尾了;而bof是判断是不是在记录最前面。

热心网友 时间:2022-03-27 20:29

首先,eof()是一个函数,所以它有函数值,它的函数值有两个true和false。它的()里的1就是参数。
它的含义是:读取文件的指针指到文件尾时,它的值就是true。还没有读到文件尾时,它的值为false。
括号里的参数是它判断的文件的文件号。

这个函数使用的范围太有限了!平时做计算用不到它,只在读取顺序文件时才用的到。

DO while not EOF(1)解释:
判断当eof(1)的值为true时停止do循环。
——这一语句经常用到顺序文件的读取中。

热心网友 时间:2022-03-27 22:20

eod
是end
of
file的缩写

你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF。
scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。
所以,这个循环,将是一个死循环。
扩展资料:
EOF是一个计算机术语,为End
Of
File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end
of
file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
参考资料:EOF–搜狗百科

热心网友 时间:2022-03-28 00:28

EOF函数当达到文件尾时返回真,没到文件尾时当然是返回假了
那个就是说没达到文件尾时一直循环!

热心网友 时间:2022-03-28 02:53

文件结尾 不过先要用OPEN方法 打开文件 1是打开文件代码 如打开多个文件 1就是第1个文件 意思就是按行读到 读取到文件最后一行时退出循环
DO while not EOF(1)
……'中间是要运行的代码
LOOP

热心网友 时间:2022-03-28 05:34

end of file

循环 当前读取处当不是(1号)文件结尾的时候

DO while not EOF(1) = do until eof(1) 循环 直到1号文件结束

open ***** as #5
DO while not EOF(5) = do until eof(5)

热心网友 时间:2022-03-28 08:32

想输入EOF就按Ctrl+z嘛,输入一串字符,然后回车,然后按ctrl+z,再回车,就行了。全文结束符不是\0,EOF在asii代码中是没有正值的,它的值是-1,所以不能对应任何一个字符,所以就拿它作为结束标志
while((ch=getchar())!=EOF)和while((ch=getchar()!='\n'))这两种区别就是前一种你得输入EOF,也就是按ctrl+z循环才会结束,后一种你按回车以后循环就会结束
就是一个结束标志而已,比如你把EOF或者'\n'换成’b‘,那就是程序检测到b后,也就是你输入b后循环就会结束,换成’ ‘那就是输入空格时循环结束。
还有楼下说的回车是\r那是错误的,\r确实是回车符,但是我们键盘上的回车键输入的是\n而不是\r,这个\n和\r的区别百度上都有
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 库存过期香精 C 语言,文件结束符 EOF问题 C语言 文件的结束符是什么玩意? c语言字符串数组结束符 linux 中c语言字符串的结束符是什么? C语言中语句的最后一定要有的一个字符是什么? c语言整形数组的结束符是什么 c语言中“!0”和“!!0”是什么意思? 0是C语言字符串结束标志? C语言中的每条执行语句都需要用分号结束吗?? C语言三个结束符有什么不同? EOF ‘\0’ '\n' C语言 文件的结束符是什么玩意? C语言中什么符号作为语句的结束符 C语言源程序的语句结束符是什么 C语言程序中的语句都用什么作为结束符? C语言中每个语句的结束符是什么 iphone7的手机壳iphone6能用吗 iphone6可以用iphone8用手机壳吗? 扩列什么意思? 微信扩列群怎么让人们看见并加入 微信扩列有什么用 C语言 字符串怎么加结束标志 怎么把图片内存变大 照片大小怎么改到10m 什么是PDA?什么是商务通? 商务通是什么?商务通在现代商业中扮演着什么样的角色? 竞价所讲的商务通是什么? 广西商务通业务是什么? 电子商务通是什么? 什么叫商务通手机?都包括些什么功能? 美团线上开通商务通有什么功能 12580商务通是什么?怎么办理? 什么叫商务通手机 商务通函是什么意思,包含哪些内容? 苹果11免费换电池条件 苹果11买来不到一年,手机电池容量还剩79,保修时间没过,可以更换电池吗_问一问 vivox7有没有计步器 vivo有没有锁屏计步器 vivo x7手机自带计步器在那儿 vivox7计步器 vivo x5pro自带计步传感器吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com