看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Codeblock10.5 C語言 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) None 問題(Question): 算字數無反應 餵入的資料(Input): 123abcd 預期的正確結果(Expected Output): 7 錯誤結果(Wrong Output): 無反應 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> main( ) { long nc; nc=0; while (getchar()!=EOF); ++nc; printf("%ld characters\n",nc); } 補充說明(Supplement): 有爬過文 有類似的 有Google過 http://www.programmer-club.com.tw/ShowSameTitleN/c/14550.html 有人使用dev-c++執行也不行 初學C不好意思 請各位大大幫忙解答 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.151.155 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465491235.A.321.html
wtchen: EOF不是檔案結尾用的嗎? 06/10 00:55
tuyutd0505: 你while結尾分號之後下一行++nc就不在迴圈裡了啊… 06/10 01:11
mabinogi805: 你while後面有個分號... 06/10 02:21
sjgau: 從鍵盤輸入字串,可以使用 gets() 06/10 09:32
zomzom: 感謝各位 但把While後面的分號移掉 試起來還是一樣..冏 06/10 09:46
Hazukashiine: 去掉括號之後程式是對的,但是你應該是忘了送出 EOF 06/10 10:08
Hazukashiine: *nix 下按 Ctrl+D Windows 下按 Ctrl+Z 06/10 10:09
ilms49898723: 根據你的執行環境用ctrl+z或ctrl+d送eof 06/10 10:09
zomzom: 感謝樓上兩位 但比如說輸入1234ABC按Enter後 在按下Ctrl+Z 06/10 10:13
zomzom: 樹出應該要是7 characters 但出來會變8 characters 06/10 10:14
zomzom: 如果直接送出Ctrl+Z 那答案會是對的0 characters 06/10 10:15
l321122: 因為enter也是一個字元,也就是'\n' 06/10 10:26
Hazukashiine: getchar 也會算 newline character 06/10 10:27
zomzom: 了解了 感謝大家 06/10 10:31