1、首先,EOF(x)是一個函數,它的返回的函數值是boolean型:當數據指針指向文件末尾時,它的值為true,當指針未指向文件末尾時它的值為false.函數中的x是一個整型數,代表打開文件時定義的文件號。
一般eof函數跟讀取順序文件相聯系,以防到達文件末尾時還要讀取數據而出現錯誤。使用方法是:先打開文件,每讀一個數據后用eof判斷是否到了文件末尾,如果不到則繼續讀取,如果到達結尾(eof()=true)則說明已經到達文件末尾,不存在沒有讀取的數據了,所以立即停止讀取。
樓主所舉的這個例子恰恰是實現這個過程的其中一句。
2、noteof(1)的含義:“1”表示打開文件時使用的通道號為1#。它的意思是當文件正在讀取時,如果指針沒有到達結尾,eof(1)=false,根據布爾代數運算規則,noteof(1)的值為true;而當指針到達文件結尾時,noteof(1)的值為false。
3、dowhilenoteof(1)是一個循環語句,它的循環條件是noteof(1)=true,剛才分析過,這個取值表示指針沒有到達文件結尾。而停止循環的條件是noteof(1)=false,這個值只有當指針文件到達尾部時才取得。
所以,這個循環條件是指:當指針沒有到達文件結尾時,繼續循環,而一旦指針到達文件結尾,則停止循環。
舉一個讀取順序文件的例子吧:
opend:\a.txtforinputas#1
dowhilenoteof(1)
input#1,a
loop
這樣就把文件d:\a.txt中的數據全部讀了一遍。當然讀取之后再做什么運算或賦值是還要另外編程解決地。
不知樓主是否看明白了?若不明白可留言,我再詳細解釋。