[問題] 新手一個簡單的word counting的問題

看板C_and_CPP作者 (RainSpeed)時間13年前 (2011/04/18 08:51), 編輯推噓0(0010)
留言10則, 5人參與, 最新討論串1/1
我正在讀K&R的 The C Programming Language 我之前把每個他的sample都打在Dev C++裡面都沒問題 直到我做到這個loop的範本的時候 不管我打入什麼字 都不會印出這個打入的字有多少character..以下是原本的code #include <stdio.h> main() { long nc; nc = 0; while(getchar() != EOF) ++nc; printf("%1d\n", nc); } 例如說我打入hello按下enter之後就直接跳下一行 沒有print出 hello 有五個character 我自己也寫了一個 可是也無法執行 想請問各位前輩有什麼問題...以下是我的code #include <stdio.h> main() { int count, cht; count = 0; printf("Input a word here\n"); cht = getchar(); while(cht != EOF) { count++; } printf("The word you entered has %d characters:", count); } 不好意思 新手剛學C語言 用的是Dev C++的beta版本 可以compile 也可以run.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 99.253.202.236

04/18 08:56, , 1F
EOF不是你按enter就可以跳出迴圈的...
04/18 08:56, 1F

04/18 08:58, , 2F
你試試ctrl+z 再按Enter...
04/18 08:58, 2F

04/18 09:02, , 3F
你自己寫的程式應該會變成無窮迴圈
04/18 09:02, 3F

04/18 09:19, , 4F
EOF represents -1 on windows, enter is '\n', which is
04/18 09:19, 4F

04/18 09:19, , 5F
represented by some number not equal to EOF
04/18 09:19, 5F

04/18 09:20, , 6F
you can google "EOF" to find what it means
04/18 09:20, 6F

04/18 10:22, , 7F
你要編裡面的程式記得[工具]→[編譯器選項] 加入命令
04/18 10:22, 7F

04/18 10:24, , 8F
-ansi 顆顆, 它符合比較舊的語言標準, 預設編不過
04/18 10:24, 8F

04/18 13:57, , 9F
如同wfgh講的,改成\n吧!換行符號是\n.EOF好像是檔案結尾
04/18 13:57, 9F

04/18 19:36, , 10F
不是好像 EOF就是End of File
04/18 19:36, 10F
文章代碼(AID): #1DguiETm (C_and_CPP)