[問題] C語言Getchar算字數

作者: zomzom (小雞)   2016-06-10 00:53:52
開發平台(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不好意思 請各位大大幫忙解答 謝謝
作者: wtchen (沒有存在感的人)   2016-06-10 00:55:00
EOF不是檔案結尾用的嗎?
作者: tuyutd0505 (Huang Jason)   2016-06-10 01:11:00
你while結尾分號之後下一行++nc就不在迴圈裡了啊…
作者: mabinogi805 (焚離)   2016-06-10 02:21:00
你while後面有個分號...
作者: sjgau (sjgau)   2016-06-10 09:32:00
從鍵盤輸入字串,可以使用 gets()
作者: zomzom (小雞)   2016-06-10 09:46:00
感謝各位 但把While後面的分號移掉 試起來還是一樣..冏
作者: Hazukashiine (私は幸せです)   2016-06-10 10:08:00
去掉括號之後程式是對的,但是你應該是忘了送出 EOF*nix 下按 Ctrl+D Windows 下按 Ctrl+Z
作者: ilms49898723 (LittleBird)   2016-06-10 10:09:00
根據你的執行環境用ctrl+z或ctrl+d送eof
作者: zomzom (小雞)   2016-06-10 10:13:00
感謝樓上兩位 但比如說輸入1234ABC按Enter後 在按下Ctrl+Z樹出應該要是7 characters 但出來會變8 characters如果直接送出Ctrl+Z 那答案會是對的0 characters
作者: l321122 (RTlnK)   2016-06-10 10:26:00
因為enter也是一個字元,也就是'\n'
作者: Hazukashiine (私は幸せです)   2016-06-10 10:27:00
getchar 也會算 newline character
作者: zomzom (小雞)   2016-06-10 10:31:00
了解了 感謝大家

Links booklink

Contact Us: admin [ a t ] ucptt.com