如题所述
循环执行,一直到最后一个纪录
从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。在UNIX和AmigaDOS中,将击键翻译为EOF的过程是由终端的驱动程序完成的,因此应用程序无需将终端和其它输入文件区分开来。
Unix平台的驱动程序在行首传送一个传输结束字符(Control-D,ASCII编码为为04)来指明文件结束。在AmigaDOS中,驱动程序传送一个Control-\来指明文件结束(而Control-D被用作中断字符)。要向输入流中插入一个真正的Control-D字符,用户需要把一个“引用”命令字符放在它的前面(通常是Control-V,表示下一个字符不作为控制字符,而是按照字面量使用)。
扩展资料:
应用
档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-08-12
Do While...Loop,是一个循环的意思
循环的终止条件是EOF(1),这里1指代的是程序在前面打开的一个文件号为#1的文件...EOF表示文件终止...整个起来翻译就是:
只要文件1没有读取完就一直做某事...
完整的语句可能是这样的:
Do While Not EOF(1) '只要文件号为1的文件未到结尾就循环
.... '一些对文件号为1的操作
....
Loop
循环的终止条件是EOF(1),这里1指代的是程序在前面打开的一个文件号为#1的文件...EOF表示文件终止...整个起来翻译就是:
只要文件1没有读取完就一直做某事...
完整的语句可能是这样的:
Do While Not EOF(1) '只要文件号为1的文件未到结尾就循环
.... '一些对文件号为1的操作
....
Loop
第2个回答 2017-04-10
简洁点的回答:
EOF(1) 指文件结尾,Do While Not EOF(1) 就是【如果不是文件结尾,那么一直循环】
EOF(1) 指文件结尾,Do While Not EOF(1) 就是【如果不是文件结尾,那么一直循环】
第3个回答 2009-08-12
循环执行,一直到最后一个纪录
第4个回答 推荐于2017-10-06
1、首先,EOF(x)是一个函数,它的返回的函数值是boolean型:当数据指针指向文件末尾时,它的值为true,当指针未指向文件末尾时它的值为false. 函数中的x是一个整型数,代表打开文件时定义的文件号。
一般eof函数跟读取顺序文件相联系,以防到达文件末尾时还要读取数据而出现错误。使用方法是:先打开文件,每读一个数据后用eof判断是否到了文件末尾,如果不到则继续读取,如果到达结尾(eof()=true)则说明已经到达文件末尾,不存在没有读取的数据了,所以立即停止读取。
楼主所举的这个例子恰恰是实现这个过程的其中一句。
2、not eof(1)的含义:“1”表示打开文件时使用的通道号为1#。它的意思是当文件正在读取时,如果指针没有到达结尾,eof(1)=false,根据布尔代数运算规则,not eof(1)的值为true;而当指针到达文件结尾时,not eof(1)的值为false。
3、do while not eof(1)是一个循环语句,它的循环条件是not eof(1)=true,刚才分析过,这个取值表示指针没有到达文件结尾。而停止循环的条件是not eof(1)=false,这个值只有当指针文件到达尾部时才取得。
所以,这个循环条件是指:当指针没有到达文件结尾时,继续循环,而一旦指针到达文件结尾,则停止循环。
举一个读取顺序文件的例子吧: open d:\a.txt for input as #1
do while not eof(1)
input #1,a
loop
这样就把文件d:\a.txt 中的数据全部读了一遍。当然读取之后再做什么运算或赋值是还需要另外编程解决。
不知楼主是否看明白了?若不明白可留言,我再详细解释。本回答被提问者采纳
一般eof函数跟读取顺序文件相联系,以防到达文件末尾时还要读取数据而出现错误。使用方法是:先打开文件,每读一个数据后用eof判断是否到了文件末尾,如果不到则继续读取,如果到达结尾(eof()=true)则说明已经到达文件末尾,不存在没有读取的数据了,所以立即停止读取。
楼主所举的这个例子恰恰是实现这个过程的其中一句。
2、not eof(1)的含义:“1”表示打开文件时使用的通道号为1#。它的意思是当文件正在读取时,如果指针没有到达结尾,eof(1)=false,根据布尔代数运算规则,not eof(1)的值为true;而当指针到达文件结尾时,not eof(1)的值为false。
3、do while not eof(1)是一个循环语句,它的循环条件是not eof(1)=true,刚才分析过,这个取值表示指针没有到达文件结尾。而停止循环的条件是not eof(1)=false,这个值只有当指针文件到达尾部时才取得。
所以,这个循环条件是指:当指针没有到达文件结尾时,继续循环,而一旦指针到达文件结尾,则停止循环。
举一个读取顺序文件的例子吧: open d:\a.txt for input as #1
do while not eof(1)
input #1,a
loop
这样就把文件d:\a.txt 中的数据全部读了一遍。当然读取之后再做什么运算或赋值是还需要另外编程解决。
不知楼主是否看明白了?若不明白可留言,我再详细解释。本回答被提问者采纳