1. 程式人生 > >C++中的檔案尾條件--EOF

C++中的檔案尾條件--EOF

C++中的檔案尾條件–EOF

C++中一般的輸入方式有兩種,一種是cin,一種是從檔案中輸入。

cin就不在此介紹了,而檔案輸入需要關心的是,檔案尾條件EOF的結束標誌,在學習C語言的時候,在檔案操作那一塊我們應該都用過檔案尾檢測標記EOF。
很多作業系統都支援重定向(Unix、Linux、Windows命令提示符下),允許檔案替換鍵盤輸入。
例如在Windows下有一個gofish.exe的可執行檔案和一個名為fishtale的文字檔案,則可以在命令提示符下輸入

gofish.exe <fishtale

如此,程式將從fishtale檔案中獲取輸入。<符號是Unix和Windows命令提示符下的重定向運算子。
其次,很多作業系統都支援鍵盤模擬檔案尾條件,即模擬EOF。比如在Unix下,可以行首按下Ctrl+D來實現,在Windows(VC++、VS)、Borland C++和GNU C++下按Ctrl+Z和Enter來實現。
Mac的Symantec下可以使用Ctrl+D模擬EOF。

在C++中:編譯環境檢測到EOF之後,cin將兩位(eofbit和failbit)置為1。可以通過eof()函式來檢測置位結果。如果檢測到了EOF,那麼cin.eof()將會返回true,否則返回false。
值得注意的是使用方法,從上面可以看到,cin.eof()或者cin.fail()函式的檢測是當其cin置位之後才檢測的,所以當其cin操作完成之後,再去檢測其操作是否完成。