鉴于此程序代码:
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)
语法,会发生什么?
答案 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