六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦 > 學習英語 > 專業(yè)英語 > 計算機英語 > c語言eof的用法

c語言eof的用法

時間: 長思709 分享

c語言eof的用法

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

  在while循環(huán)中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。在文本文件中,數(shù)據(jù)都是以字符的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現(xiàn)-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("%d\n",a+b);

  }

  return 0;

  }

  在上面這段代碼中,定義了兩個整型的變量,通過在while循環(huán)中判斷輸入的返回值是否為EOF(即-1)然后打印a+b的值。

  之前我也只是聽說過EOF這個名詞,但是具體怎么用也不知道,經(jīng)過我的測試發(fā)現(xiàn):

  1.

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

  2.

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

  3.

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

  4.

  輸入,. ~等字符回車,會進入無限循環(huán)屏幕上打印無限的數(shù)字,這是因為輸入一個字符串時,由于scanf需要一個整型數(shù)據(jù),可是當前輸入緩沖中的數(shù)據(jù)并不是一個整型的數(shù)據(jù),那么scanf會直接退出,并返回0,表示讀到0個數(shù),同時不會改為輸入緩沖,會進入到下一輪的循環(huán)之中,在屏幕輸出:上一次的計算結果,這時由于輸入緩沖中還有數(shù)據(jù),scanf不會阻塞,而是直接返回,可是發(fā)現(xiàn)緩沖中的數(shù)據(jù)不是所要的數(shù)據(jù),這樣返回0.....使得循環(huán)一直運行下去。要是想解決問題可以在循環(huán)語句中加上這句話:fflush(stdin);這樣就不會無限打印數(shù)字了。

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

512587