菜鸟跪求(简单问题)

huang514469 2014-04-03 08:33:54
#include<stdio.h>
void main()
{
int nc,c;
nc=0;
while((c=getchar())!=EOF)
nc++;
printf("%d\n",nc);

}
大侠们,我在vc6,。0建立了控制台应用文件,在控制台输入字符,然后按enter键怎么就统计不了输入的字符数,是什么原因呢?跪求
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
li4c 2014-04-05
  • 打赏
  • 举报
回复
其实是在计数,只是楼主的代码循环下写的不好,遇到Ctrl+z才会跳出循环,输出计数值
__phoenix 2014-04-04
  • 打赏
  • 举报
回复
windows下ctrl+z表示着EOF
li4c 2014-04-04
  • 打赏
  • 举报
回复
楼上说的都是对的getchar只有遇到ctrl +z的时候才会停止
zhujunhua2012 2014-04-04
  • 打赏
  • 举报
回复
引用 6 楼 max_min_ 的回复:
EOF 表示文件结尾 linux ctrl+d windows ctrl+z 如果要回车的话 那就是回车的ascii 13
+1
荔枝树_12w 2014-04-03
  • 打赏
  • 举报
回复
直接判断是否是回车不就好了 把EOF换成'\n'
max_min_ 2014-04-03
  • 打赏
  • 举报
回复
EOF 表示文件结尾 linux ctrl+d windows ctrl+z 如果要回车的话 那就是回车的ascii 13
chanewm 2014-04-03
  • 打赏
  • 举报
回复
linux下 ctrl+d表示EOF windows下貌似是ctrl+z
chanewm 2014-04-03
  • 打赏
  • 举报
回复
ctrl+z
haltwang 2014-04-03
  • 打赏
  • 举报
回复
你想要的功能可以这样实现: char str[1000]; scanf("%s",str); printf("The size of user input is %d. \n",strlen(str)); getchar();
softee 2014-04-03
  • 打赏
  • 举报
回复
EOF是文件结束符。 Enter键输入的不是EOF,所以不终结。 你可以 (c=getchar())!=‘q’ 然后输入q终结。 当然,其他任意字符都可以充当终结符,不过EOF不行,因为你输入不了。
haltwang 2014-04-03
  • 打赏
  • 举报
回复
你对getchar的理解有问题。 当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧