C語言中的EOF

2022-09-01 09:39:11 字數 809 閱讀 1843

本文是自己通過各種查閱以後的個人理解,如果有理解的地方還請大家多多指正!

在做小演算法題目的時候經常用到eof,模模糊糊用但不清楚到底是什麼意思。後來遇到了問題進行了仔細了解。

eof是end of file,也就是指「檔案」的結尾,這裡的檔案可以指檔案(file),也可以指輸入(stdin)。

可以說它是乙個特殊字元,也就是 -1。

當對檔案進行讀取的時候,到了檔案的結尾的時候,系統會返回乙個訊號,也就是eof(-1),進行判斷是否到了檔案的結尾。

當對輸入進行判斷的時候,如下例,那麼怎樣結束while迴圈呢?

while(scanf("

%d %d

",&a,&b)!=eof)

首先:要講一下scanfscanf是有返回值的,返回值取決於讀到的變數的個數。

如果 int num = scanf("%d %d",&a,&b);

輸入:1 0  則 num = 2;

輸入:1 a  則num = 1; 因為a不是十進位制整數,隨意不能成功讀取

輸入:a 1  則num = 0; 因為a不能讀取後面的1也無法成功讀取

那麼,問題來了!無論你輸入對與錯返回值都是大於等於0的數,怎麼會出現eof(-1)呢~?

其實,在windows中 ctrl+z 為eof,在linux中 ctrl+d 為eof,這樣就可以結束迴圈了。

C語言中的EOF

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

C語言中EOF的應用

1.5.1.檔案複製 借助於getchar 與putchar 函式,可以在不了解其它輸入 輸出知識的情況下編寫出 數量驚人的有用的 最簡單的例子就是把輸入一次乙個字元地複製到輸出,其基本思想 如下 讀乙個字元 while 該字元不是檔案結束指示符 輸出剛讀入的字元 讀下乙個字元 將上述基本思想轉換為...

C語言中的EOF是什麼?

日期 2011年11月12日 我學習c語言的時候,遇到的乙個問題就是eof。它是end of file的縮寫,表示 文字流 stream 的結尾。這裡的 文字流 可以是檔案 file 也可以是標準輸入 stdin 比如,下面這段 就表示,如果不是檔案結尾,就把檔案的內容複製到螢幕上。int c wh...