商務英語計算機英語

c語言eof的用法

本文已影響 5.58K人 

計算機術語,縮寫通常為EOF(End Of File),在作業系統中表示資料源無更多的資料可讀取。資料源通常稱為檔案或串流。在C語言中,或更精確地說成C標準函式庫中表示檔案結束符(end of file)。下面我們來看看c語言eof的用法。

ing-bottom: 75%;">c語言eof的用法

在while迴圈中以EOF作為檔案結束標誌,這種以EOF作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的ASCII程式碼值的形式存放。我們知道,ASCII程式碼值的範圍是0~255,不可能出現-1,因此可以用EOF作為檔案結束標誌。

[html] view plain#include<stdio.h>

#include <stdlib.h>

int main(void)

{

int a,b;

while(scanf("%d %d",&a,&b) != EOF)

{

printf("%dn",a+b);

}

return 0;

}

在上面這段程式碼中,定義了兩個整型的變數,通過在while迴圈中判斷輸入的返回值是否為EOF(即-1)然後列印a+b的值。

之前我也只是聽說過EOF這個名詞,但是具體怎麼用也不知道,經過我的測試發現:

1.

輸入1 2然後回車打印出3,這個好理解,scanf接收到兩個整型資料然後回車(這時候scanf的返回值是2,scanf()函式執行成功時的返回值是成功讀取的變數數,也就是說,你這個scanf()函式有幾個變數,如果scanf()函式全部正常讀取,它就返回幾。)

2.

輸入1然後回車,它會讓你繼續輸入,在這期間不論你空格鍵,回車鍵,TAB鍵只要是你沒輸入一個非空白符它就會讓你無限輸入。(空白字元會使scanf()函式在讀操作中略去輸入中的一個或多個空白字元,空白符可以是space,tab,enter等,直到第一個非空白符出現為止。scanf()函式接收輸入資料時,遇以下情況結束一個數據的輸入:(不是結束該scanf函式,scanf函式僅在每一個數據域均有資料,並按回車後結束)。① 遇空格、“回車”、“跳格”鍵。②遇非法輸入。

3.

輸入1 2 3 4 5 6 7 8,然後回車,它會打印出3 7 11 15,這個我自己理解是當你按下回車時scanf結束,但是接收的資料有4組,它會先取出兩個然後列印之和,然後依次。。。。列印(理解不對之處還望各位賜教。)

4.

輸入,. ~等字元回車,會進入無限迴圈螢幕上列印無限的數字,這是因為輸入一個字串時,由於scanf需要一個整型資料,可是當前輸入緩衝中的資料並不是一個整型的資料,那麼scanf會直接退出,並返回0,表示讀到0個數,同時不會改為輸入緩衝,會進入到下一輪的迴圈之中,在螢幕輸出:上一次的計算結果,這時由於輸入緩衝中還有資料,scanf不會阻塞,而是直接返回,可是發現緩衝中的資料不是所要的資料,這樣返回0.....使得迴圈一直執行下去。要是想解決問題可以在迴圈語句中加上這句話:fflush(stdin);這樣就不會無限列印數字了。

至於想讓迴圈結束,在windows下輸入ctrl+Z(即EOF)然後回車就可以了。好了,我得研究結束了,寫出來大家共同理解,希望文中有錯誤的地方大家可以指點一二。

猜你喜歡

熱點閱讀

最新文章

推薦閱讀