EOF的意義及用法

2022-06-09 10:33:09 字數 1822 閱讀 6702

eof,為end of file的縮寫,通常在文字的最後存在此字元表示資料結束。

在微軟的dos和windows中,讀取資料時終端不會產生eof。此時,應用程式知道資料來源是乙個終端(或者其它「字元裝置」),並將乙個已知的保留的字元或序列解釋為檔案結束的指明;最普遍地說,它是ascii碼中的替換字元(control-z,**26)。

在c語言中,或更精確地說成c標準函式庫中表示檔案結束符(end of file)。在while迴圈中以eof作為檔案結束標誌,這種以eof作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的ascii**值的形式存放。我們知道,ascii**值的範圍是0~127,不可能出現-1,因此可以用eof作為檔案結束標誌。

檔案訪問或其它 i/o 功能可能傳回等於象徵符號值 (巨集) eof 指示檔案結束的情形發生。實際上 eof 的值通常為 -1,但它依系統有所不同。巨集 eof會在編譯原始碼前展開實際值給預處理器。

c語言中,eof常被作為檔案結束的標誌。還有很多檔案處理函式處錯誤後的返回值也是eof,因此常被用來判斷呼叫乙個函式是否成功。

例如:

1 #include 2

3int

main()410

11return0;

12 }

上面的程式執行時,如果不加" != eof",那麼這個程式就是個死迴圈,會一直執行下去;加上" != eof"後該程式就不是死迴圈了,如果在終端不進行輸入該程式會自動結束(while的意思就是說當當前輸入快取還有東西時就一直讀取,直到輸入快取中的內容為空時停止)。

在這"scanf("%d",&n) != eof"相當於"scanf("%d",&n) != eof",或"~scanf("%d",&n)",或"scanf("%d",&n) == 1 " 。scanf的返回值由後面的引數決定

scanf("%d%d", &a, &b);

如果a和b都被成功讀入,那麼scanf的返回值就是2;如果只有a被成功讀入,返回值為1;如果a和b都未被成功讀入,返回值為0;如果遇到錯誤或遇到end of file,返回值為eof,且返回值為int型。

但是在c++中不存在這種用法,但相同作用的有while((cin >> a) != 0):

以前不理解在while裡面用cin >> a;是什麼意思,cin是c++的輸入流物件,">>"是過載的運算子,cin>>的返回值是cin物件。用這個當條件的話,通過檢測其流的狀態來判斷結束;

(1)若流是有效的,即流未遇到錯誤,那麼檢測成功;

(2)若遇到檔案結束符,或遇到乙個無效的輸入時(例如本題輸入的值不是乙個整數),istream物件的狀態會變為無效,條件就為假;讀取失敗的時候,就不能繼續讀取了,那麼讀取操作結束,while(cin>>a)就返回false,跳出迴圈!

c++中的while (cin>>n,n):

他的作用是:輸入乙個數,這數不為0時進入迴圈,為0時跳出迴圈。

採納:""

輸入(cin)緩衝是行緩衝。當從鍵盤上輸入一串字元並按回車後,這些字元會首先被送到輸入緩衝區中儲存。每當按下回車鍵後,cin 就會檢測輸入緩衝區中是否有了可讀的資料,這種情況下cin對鍵盤上是否有作為流結束標誌ctrl+z或者ctrl+d,其檢查的方式有兩種:阻塞式以及非阻塞式。

阻塞式檢查方式指的是只有在回車鍵按下之後才對此前是否有 ctrl+z 組合鍵按下進行檢查,非阻塞式樣指的是按下 ctrl+d 之後立即響應的方式。如果在按 ctrl+d 之前已經從鍵盤輸入了字元,則 ctrl+d的作用就相當於回車,即把這些字元送到輸入緩衝區供讀取使用,此時ctrl+d不再起流結束符的作用。如果按 ctrl+d 之前沒有任何鍵盤輸入,則 ctrl+d 就是流結束的訊號。

阻塞式的方式有乙個特點:只有按下回車之後才有可能檢測在此之前是否有ctrl+z按下。

explicit的用法及意義

c 中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面所示 class myclas...

shell中的EOF用法

1 eof shell中通常將eof與 結合使用,表示後續的輸入作為子命令或子shell的輸入,直到遇到eof為止,再返回到主調shell。可以把eof替換成其他東西,意思是把內容當作標準輸入傳給程式。回顧一下 的用法。當shell看到 的時候,它就會知道下乙個詞是乙個分界符。在該分界符以後的內容都...

shell中的EOF用法

1 eof shell中通常將eof與 結合使用,表示後續的輸入作為子命令或子shell的輸入,直到遇到eof為止,再返回到主調shell。可以把eof替換成其他東西,意思是把內容當作標準輸入傳給程式。回顧一下 的用法。當shell看到 的時候,它就會知道下乙個詞是乙個分界符。在該分界符以後的內容都...