作者zomzom (小雞)
看板C_and_CPP
標題[問題] C語言Getchar算字數
時間Fri Jun 10 00:53:52 2016
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1465491235.A.321.html
1F:→ wtchen: EOF不是檔案結尾用的嗎? 06/10 00:55
2F:推 tuyutd0505: 你while結尾分號之後下一行++nc就不在迴圈裡了啊… 06/10 01:11
3F:→ mabinogi805: 你while後面有個分號... 06/10 02:21
4F:推 sjgau: 從鍵盤輸入字串,可以使用 gets() 06/10 09:32
5F:→ zomzom: 感謝各位 但把While後面的分號移掉 試起來還是一樣..冏 06/10 09:46
6F:→ Hazukashiine: 去掉括號之後程式是對的,但是你應該是忘了送出 EOF 06/10 10:08
7F:→ Hazukashiine: *nix 下按 Ctrl+D Windows 下按 Ctrl+Z 06/10 10:09
8F:→ ilms49898723: 根據你的執行環境用ctrl+z或ctrl+d送eof 06/10 10:09
9F:→ zomzom: 感謝樓上兩位 但比如說輸入1234ABC按Enter後 在按下Ctrl+Z 06/10 10:13
10F:→ zomzom: 樹出應該要是7 characters 但出來會變8 characters 06/10 10:14
11F:→ zomzom: 如果直接送出Ctrl+Z 那答案會是對的0 characters 06/10 10:15
12F:推 l321122: 因為enter也是一個字元,也就是'\n' 06/10 10:26
13F:→ Hazukashiine: getchar 也會算 newline character 06/10 10:27
14F:→ zomzom: 了解了 感謝大家 06/10 10:31