商務英語計算機英語

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)然後回車就可以了。好了,我得研究結束了,寫出來大家共同理解,希望文中有錯誤的地方大家可以指點一二。

猜你喜歡

熱點閱讀

最新文章