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 LEFT$(N$,1)="a" THEN
        PRINT ID,N$,S$,PN$
    END IF
LOOP
CLOSE#5
END

我不太明白有什么用do while not eof(5)?如果eof(n)删除该语法会发生什么?

4

6 回答 6

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
于 2016-06-22T12:44:41.980 回答
1

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

所以基本上它是一个保持检查的循环,如果遇到文件结尾,它将退出循环。简而言之,如果您跳过那一点,您将不会阅读该文件。

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

于 2016-05-11T16:32:09.960 回答
1

也就是说,当您不在文件末尾时,请在循环部分执行代码。

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

于 2016-05-11T16:26:03.910 回答
1

这意味着循环将一直运行到文件末尾,因此循环中的部分代码将重复。您也可以通过不带“DO”的“WHILE NOT EOF(5)”来完成。

于 2016-06-04T14:02:19.637 回答
1

EOF 表示文件结束。在程序中,do 循环一直持续到文件由于 eof(5) 而没有到达其末尾。如果删除了 eof,则程序要么进入无限循环,要么只执行一次。

于 2016-12-25T15:44:24.713 回答
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
于 2016-11-07T03:15:40.927 回答