在qbasic程序中“while eof(n)”的目的是什么?

时间:2016-05-11 16:09:50

标签: qbasic

鉴于此程序代码:

CLS
OPEN "school.dat" FOR INPUT AS #5
DO WHILE NOT EOF(5)
    INPUT #5,ID,N$,S$,PN$
    IF LEFT$(N$,1)="A" OR LEFT$(N$,1)="a" THEN
        PRINT ID,N$,S$,PN$
    END IF
LOOP
CLOSE#5
END

我不太明白do while not eof(5)的用途是什么?如果删除了eof(n)语法,会发生什么?

6 个答案:

答案 0 :(得分:1)

它说,虽然你不在文件的末尾,但是在循环部分中执行代码。

没有它,代码将尝试从文件末尾读取并显示一条错误消息,表明它已经过了文件末尾

答案 1 :(得分:1)

eof(5)函数EOF测试传递给函数的文件号。

所以基本上它是一个循环来保持检查,如果遇到文件结束,它将退出循环。注意,如果你跳过这一点,你就不会读这个文件了。

检查此链接并搜索eof以获取示例https://www2.southeastern.edu/Academics/Faculty/pmcdowell/qbasic_manal.txt

答案 2 :(得分:1)

这意味着循环将一直运行,直到它到达文件的末尾,因此循环中的部分代码将重复。您也可以通过" WHILE NOT EOF(5)"没有" DO"。

答案 3 :(得分:1)

此外,要更清楚地查看程序的结构,有助于缩进代码。所以像这样:

cls
open"school.dat" for input as #5
do while not eof(5)
   input #5,ID,N$,S$,PN$
   IF LEFT$(N$,1)="A" OR "a" THEN
      PRINT ID,N$,S$,PN$
   END IF
LOOP
CLOSE#5
END

答案 4 :(得分:1)

EOF表示文件结束。 在程序中,do循环继续,直到文件由于eof(5)而没有到达它的结尾。如果eof被删除,程序将进入无限循环或者它只会被执行一次。

答案 5 :(得分:0)

此片段描述了如何使用EOF功能退出文件读取:

CLS
OPEN "school.dat" FOR INPUT AS #5
DO
    IF EOF(5) THEN
        EXIT DO
    END IF
    INPUT #5, ID, N$, S$, PN$
    IF LEFT$(N$, 1) = "A" OR LEFT$(N$, 1) = "a" THEN
        PRINT ID, N$, S$, PN$
    END IF
LOOP
CLOSE #5
END