2016-05-11 10 views
1

このプログラムコードを考える:qbasicプログラムで "while eof(n)"の目的は何ですか?

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)の構文が削除されたらどうなりますか?

答えて

1

ファイルの最後ではないが、ループセクション内でコードを実行すると言っている。

それがなければ、コードは、ファイルの末尾から読み取られ、その後、

1

eof(5)関数EOF関数に渡されたファイルの数をテストするファイルの末尾過去のあるエラーメッセージを表示しようとします。

これは基本的にループをチェックし、ファイルの終わりに遭遇するとループを終了します。あなたがそのビットをスキップすると、あなたはファイルを読んでいないでしょう。

チェックこのリンクとそれがループ内のコードの一部を繰り返すことになりますように、それは、ファイルの終わりに到達するまでループが実行されていることを意味します例えばEOFのためhttps://www2.southeastern.edu/Academics/Faculty/pmcdowell/qbasic_manal.txt

1

を検索します。あなたは "DO"がなくても "いつものEOF(5)"でそれをすることができます。

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 
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 
1

EOFは、ファイルの終わりを意味しています。 ここでプログラムでは、eof(5)のためにファイルが終わりに達するまでdoループが続きます.eofが削除されると、プログラムは無限ループになるか、一度だけ実行されます。

関連する問題