C語(yǔ)言中,怎么用EOF結(jié)束輸入
C語(yǔ)言中,怎么用EOF結(jié)束輸入?
三國(guó)紛爭(zhēng)
2018-10-24 06:02:14
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
EOF 是個(gè)宏,其意思是:End Of File,文件尾標(biāo)志。 從數(shù)值上來(lái)看,就是整數(shù)-1
在C語(yǔ)言的頭文件中對(duì)其進(jìn)行了宏定義:
1 | libio.h: # define EOF (-1) |
當(dāng)讀文件操作時(shí),遇到文件結(jié)束位置或讀數(shù)據(jù)出錯(cuò)均會(huì)返回 EOF。 (C語(yǔ)言中所有的輸入輸出操作均是按讀文件的思想來(lái)設(shè)計(jì)的,或者說(shuō),是文件操作的一種特例,如getchar()就是fgetc(stdin) 的一個(gè)宏 )
1 | int getchar () ; //從標(biāo)準(zhǔn)輸入緩沖區(qū)讀取一個(gè)字符,成功返回該字符的ASCII值,出錯(cuò),返回EOF |
那么,如何在鍵盤(pán)輸入時(shí),產(chǎn)生EOF呢? 不同的系統(tǒng)方法不同:
linux系統(tǒng)下,在輸入回車(chē)換行后的空行位置,按 ctrl+d (先按ctrl鍵,不放,再按d鍵)
windows系統(tǒng)下,在輸入回車(chē)換行后的空行位置,按 ctrl+z,再回車(chē)確認(rèn)
以下代碼供參考:
123456789 | #include <stdio.h> void main() { int ch; do { ch= getchar (); printf ( "ch=%d\n" , ch ); //輸出讀返回的ch值,讀到EOF會(huì)輸出-1 } while ( ch!=EOF ); } |
舉報(bào)