代码编译后运行没有显示预期结果

mazavaca 2013-08-30 12:46:40
一段很简单的显示输入字符个数的程序:
#include <stdio.h>
main()
{
int nc;
for(nc = 0; getchar() != EOF; ++nc)
;
printf("%d\n", nc);
}
在Visual Studio Command Prompt里面编译运行后输入字符后按回车,没有任何显示,为什么不显示预期的结果呢?在linux的gcc里面编译运行也是同样的问题
...全文
343 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mazavaca 2013-08-30
  • 打赏
  • 举报
回复
引用 1 楼 ananluowei 的回复:
把for语句下面那个;去掉。
这段程序是C程序设计语言这本书里面的一段示例代码,那个空语句是for循环的主体,去掉就不是显示输入字符个数的逻辑了。而且去掉之后运行的结果是输入几个字符就显示几个0,计数并没有增加
max_min_ 2013-08-30
  • 打赏
  • 举报
回复
EOF: windows : ctrl + z Linux ctrl + d
modyaj 2013-08-30
  • 打赏
  • 举报
回复
你的循环想做啥 打个分号在后面不就是空语句了吗
铃仙 2013-08-30
  • 打赏
  • 举报
回复
输入回车符当然不会运行结束,要模拟eof,必须按ctrl+z组合键,然后再回车。
大尾巴猫 2013-08-30
  • 打赏
  • 举报
回复
把for语句下面那个;去掉。
mazavaca 2013-08-30
  • 打赏
  • 举报
回复
引用 2 楼 Tachibana_Kanade 的回复:
输入回车符当然不会运行结束,要模拟eof,必须按ctrl+z组合键,然后再回车。
应该是模拟EOF,windows上在输入字符串按回车后再输入ctrl+z,在按回车就得到了结果,linux上只需输入ctrl+d就显示了结果
大尾巴猫 2013-08-30
  • 打赏
  • 举报
回复
引用 5 楼 mazavaca 的回复:
[quote=引用 1 楼 ananluowei 的回复:] 把for语句下面那个;去掉。
这段程序是C程序设计语言这本书里面的一段示例代码,那个空语句是for循环的主体,去掉就不是显示输入字符个数的逻辑了。而且去掉之后运行的结果是输入几个字符就显示几个0,计数并没有增加[/quote] 哦,我没看仔细。 要回车显示字符个数的话,把 getchar() != EOF; 改成 getchar() != '\n';

69,371

社区成员

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

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