3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
在您可能使用的簡(jiǎn)單設(shè)置中,它getchar
與緩沖輸入配合使用,因此必須先按Enter鍵,然后getchar才能讀取任何內(nèi)容。字符串不以EOF
; 結(jié)尾。實(shí)際上,EOF
它實(shí)際上不是字符,而是指示文件結(jié)尾的不可思議的值。但EOF
不是讀取的字符串的一部分。getchar
當(dāng)沒(méi)有什么可閱讀的東西時(shí),它就是返回的東西。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
根據(jù)C定義,字符串以終止'\0'。您"C strings"的程序中沒(méi)有任何內(nèi)容。
您的程序從標(biāo)準(zhǔn)輸入(鍵盤(pán))讀取字符(緩沖到ENTER),并將它們寫(xiě)回到標(biāo)準(zhǔn)輸出(屏幕)。無(wú)論您鍵入多少個(gè)字符或執(zhí)行此操作多長(zhǎng)時(shí)間,它都會(huì)執(zhí)行此操作。
要停止該程序,您必須指示標(biāo)準(zhǔn)輸入沒(méi)有更多數(shù)據(jù)(呵呵,鍵盤(pán)怎么也沒(méi)有更多數(shù)據(jù)?)。
您只需鍵入Ctrl+D(Unix)或Ctrl+Z(Windows)即可假裝文件已到達(dá)末尾。
Ctrl+D(或Ctrl+Z)并不是真正C意義上的字符。
如果您使用輸入重定向來(lái)運(yùn)行程序,則EOF是文件的實(shí)際結(jié)尾,而不是使人信服的
./a.out < source.c
- 3 回答
- 0 關(guān)注
- 549 瀏覽
添加回答
舉報(bào)