求解(菜鸟)

命运小丑 2014-01-05 10:08:14
新手上路 遇到一点问题。
为什么显示不nc的值
...全文
266 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
辉狼007 2014-01-08
  • 打赏
  • 举报
回复
这是个死循环!
重庆-老白 2014-01-07
  • 打赏
  • 举报
回复
学习了。。。
六月下的雪 2014-01-07
  • 打赏
  • 举报
回复
在发布版本的程序中,我们有一个头文件是#include <stdlib.h>;并且在程序代码尾部要加上system("pause"); return 0;
六月下的雪 2014-01-07
  • 打赏
  • 举报
回复
还有一点我要告诉你哈!就是主函数,我们通常都是写成int main(),如果直接写main()是不规范的,一个函数一定要有类型
SKATE11 2014-01-06
  • 打赏
  • 举报
回复
没收到eof就死循环了 程序没运行到那
  • 打赏
  • 举报
回复
命运小丑 2014-01-06
  • 打赏
  • 举报
回复
感谢各位的回答
图灵狗 2014-01-06
  • 打赏
  • 举报
回复
EOF在DOS/WINDOWS系统下对应为CTRL+Z组合键。
引用 楼主 destinyclown 的回复:
新手上路 遇到一点问题。 为什么显示不nc的值
59hdvj 2014-01-06
  • 打赏
  • 举报
回复
新手目前啥都不懂。
Jimmy1224 2014-01-06
  • 打赏
  • 举报
回复

//输入123敲回车再同时按ctrl和z
//输出4,因为回车也算一个字符,
//不换行会发现ctrl+z不是代表-1,是26。这需要单步执行会懂的
        long nc =0;
	char ch;
	while(ch=getchar())
	{
		if(ch==EOF)//define EOF -1,EOF被默认定义为-1,遇到ctrl+z为-1退出循环
		{
			break;
		}
		
		++nc;
	}
	printf("%ld\n",nc);
自己运行就清楚很多了
半行注释 2014-01-05
  • 打赏
  • 举报
回复
ps: 输入Ctrl + z 即可结束
半行注释 2014-01-05
  • 打赏
  • 举报
回复
EOF代表的是-1 我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。 百度文库 你输入的是按字符去取 分别取每个字符 所以根本取不到 -1的

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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