两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

  • 歡迎訪問(wèn)C語(yǔ)言網(wǎng)www.sztianhecheng.cn 比賽欄每月有獎(jiǎng)月賽!舉辦比賽聯(lián)系QQ:2045302297
  • 問(wèn)題反饋、粉絲交流 QQ群327452739 藍(lán)橋杯訓(xùn)練群:113766799 申請(qǐng)群時(shí)請(qǐng)備注排名里的昵稱
  • C語(yǔ)言研究中心 為您提供有圖、有料、解渴的C語(yǔ)言專題! 歡迎討論!

C語(yǔ)言中EOF是什么意思?

技術(shù)專題 CTO 82375次瀏覽 5個(gè)評(píng)論

相信很多朋友在學(xué)習(xí)C語(yǔ)言過(guò)程中,都看到過(guò)EOF的字樣,但翻過(guò)整本C語(yǔ)言的書(shū),也沒(méi)有看到有這個(gè)函數(shù)或者關(guān)鍵字的,豈不是感覺(jué)很奇怪?難道學(xué)的不細(xì)有疏漏嗎?當(dāng)然不是!這里筆者告訴您一個(gè)技巧,如果您在看代碼過(guò)程中,看到特殊的字符感覺(jué)不是關(guān)鍵字也不是函數(shù),那您首先要想到的就是:這個(gè)東西是不是#define或者typedef過(guò)的呢?

 

直接開(kāi)門(mén)見(jiàn)山,比如ACM比賽經(jīng)常有這樣的代碼:while(scanf(“%d%d”)!=EOF)

這玩意啥意思呢?首先scanf你寫(xiě)while里就很奇怪了,初學(xué)者表示沒(méi)見(jiàn)過(guò)這么嵌套寫(xiě)的,再加個(gè)EOF更離譜了,都讓人懷疑這是不是C代碼了……

 

那給大家講一下,首先這個(gè)代碼scanf能寫(xiě)while里是因?yàn)閟canf(“%d%d”)!=EOF本身是個(gè)邏輯判斷,也就是真或者假,所以可以作為條件判斷寫(xiě)到while里,那么最主要的問(wèn)題來(lái)了,EOF到底啥玩意?

 

好了,如果您學(xué)了C語(yǔ)言中的宏定義就一切真相大白了,您不妨打開(kāi)我們最常用的stdio.h這個(gè)頭文件(不知道怎么打開(kāi)?隨便打開(kāi)一個(gè)包含這個(gè)頭文件的程序,右鍵即可),然后搜索EOF即可發(fā)現(xiàn)答案! 如下:

C語(yǔ)言中EOF是什么意思?

C語(yǔ)言中EOF是什么意思?

怎么樣?看到了吧,EOF其實(shí)就是-1!

也就是說(shuō)EOF就是個(gè)數(shù)字,被定義為-1而已!

 

為什么這樣做呢? stdio.h作為一個(gè)標(biāo)準(zhǔn)輸入輸出的頭文件,自然會(huì)定義很多標(biāo)準(zhǔn)的東西,那么EOF正是因此而生,且聽(tīng)筆者慢慢道來(lái):

在我們進(jìn)行包括scanf等的輸入函數(shù)使用時(shí),其實(shí)用戶在cmd中的輸入實(shí)際是存放于緩沖區(qū)當(dāng)中,當(dāng)用戶鍵入回車那一瞬間,之前輸入的數(shù)據(jù)才會(huì)被存進(jìn)去,而這里無(wú)論是單個(gè)字符還是字符串,我們都知道scanf的返回值呢是表示成功接受到的對(duì)象的個(gè)數(shù),那這里如果遇到特殊情況,比如緩沖區(qū)文件流滿等問(wèn)題,那么scanf將如何處理呢?答案是返回-1 ! 這里不光是scanf,返回值為個(gè)數(shù)的函數(shù),遇到文件流滿大多都會(huì)返回-1,所以這個(gè)-1用的比較多,那么stdio.h就索性專門(mén)定義一個(gè)宏來(lái)表示,取End Of File(文件末尾的意思)的前三個(gè)字母即組成EOF,所以也就有了 #define EOF (-1) 這樣的話!

 

那么,現(xiàn)在看懂了嗎?

C語(yǔ)言研究中心(www.sztianhecheng.cn)

C語(yǔ)言網(wǎng)提供「C語(yǔ)言、C++、算法競(jìng)賽」在線課程,全部由資深研發(fā)工程師或ACM金牌大佬親授課,更科學(xué)、全面的課程體系,以在線視頻+在線評(píng)測(cè)的學(xué)習(xí)模式學(xué)習(xí),學(xué)練同步,拒絕理論派,真正學(xué)會(huì)編程!還有獎(jiǎng)學(xué)金等增值福利等你!

C語(yǔ)言網(wǎng), 版權(quán)所有丨如未注明 , 均為原創(chuàng)丨本網(wǎng)站采用BY-NC-SA協(xié)議進(jìn)行授權(quán) , 轉(zhuǎn)載請(qǐng)注明C語(yǔ)言中EOF是什么意思?
喜歡 (439)
[jinyangH@aliyun.com]
分享 (0)
發(fā)表我的評(píng)論
取消評(píng)論
表情

Hi,您需要填寫(xiě)昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
(5)個(gè)小伙伴在吐槽
  1. while (~scanf)這種形式作何解釋呢?
    風(fēng)云霧客2020-03-04 20:38 回復(fù)
    • ~表示取反。-1的補(bǔ)碼是1111 1111 1111 1111,按位取反則是0000 0000 0000 0000,即為0。當(dāng)scant返回EOF時(shí),即為0,退出循環(huán)。^_^
      金牌港C2021-09-16 17:21 回復(fù)
  2. EOF 是ctrl+z :?: :?:
    FM9872020-08-13 18:39 回復(fù)
    • 回車然后ctrl+z再回車
      雨水2022-02-20 15:46 回復(fù)