[问题] 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