c语言书上的

tixiangshu 2011-06-27 09:06:51
#include <stdio.h>

#define IN 1
#define OUT 0

main()
{
int c,nc,nl,nw,state;
state = OUT;
nc = nl = nw = 0;

while((c=getchar())!=EOF)
{
++nc;
if(c == '\n')
++nl;
if(c == ' '||c == '\n'||c == '\t')
state=OUT;
else if(OUT==state)
{
state=IN;
++nw;
}
}
printf("nc=%d,nl=%d,nw=%d\n",nc,nl,nw);
}
想问下为什么,我输入一句话后按回车键没有反应的,用的是VC 6.0++,谢谢了
...全文
144 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tixiangshu 2011-06-28
  • 打赏
  • 举报
回复
谢谢大家啊
long2015 2011-06-27
  • 打赏
  • 举报
回复
可以输出看看,printf("%\n",EOF);
EOF其实是被定义为 -1
long2015 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdupoplar 的回复:]

while((c=getchar())!=EOF)
EOF不是回车,是组合键,好像是Ctrl+Z或Ctrl+C,记不太清了。
[/Quote]

不应该说EOF是组合键,而是Ctrl+C 产生一个中止信号(abort)。
shaoxiaojing5193 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fengzhw 的回复:]
引用 3 楼 anyidan 的回复:

引用 1 楼 sdupoplar 的回复:

while((c=getchar())!=EOF)
EOF不是回车,是组合键,好像是Ctrl+Z或Ctrl+C,记不太清了。


记得后面要有 enter

DOS/WINDOWS环境下终端输入结束的标准办法就是这个:CTRL+Z ENTER
[/Quote]
++++
fengzhw 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 anyidan 的回复:]

引用 1 楼 sdupoplar 的回复:

while((c=getchar())!=EOF)
EOF不是回车,是组合键,好像是Ctrl+Z或Ctrl+C,记不太清了。


记得后面要有 enter
[/Quote]
DOS/WINDOWS环境下终端输入结束的标准办法就是这个:CTRL+Z ENTER
hackbuteer1 2011-06-27
  • 打赏
  • 举报
回复
EOF是组合键,遇到Ctrl+C的时候,读入会结束。。
hackbuteer1 2011-06-27
  • 打赏
  • 举报
回复
c应该定义为字符类型的,另外读入字符串的时候,遇到\n的时候就要退出了。。
#include "stdio.h"

#define IN 1
#define OUT 0

void main()
{
int nc,nl,nw,state;
char c;
state = OUT;
nc = nl = nw = 0;

while((c=getchar())!=EOF)
{
++nc;
if(c == '\n')
{
++nl;
break;
}
if(c == ' '|| c == '\n'|| c == '\t')
state=OUT;
else if(OUT==state)
{
state=IN;
++nw;
}
}
printf("nc=%d,nl=%d,nw=%d\n",nc,nl,nw);
}
AnYidan 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdupoplar 的回复:]

while((c=getchar())!=EOF)
EOF不是回车,是组合键,好像是Ctrl+Z或Ctrl+C,记不太清了。
[/Quote]

记得后面要有 enter
Defonds 2011-06-27
  • 打赏
  • 举报
回复
sdupoplar 2011-06-27
  • 打赏
  • 举报
回复
while((c=getchar())!=EOF)
EOF不是回车,是组合键,好像是Ctrl+Z或Ctrl+C,记不太清了。
赵4老师 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 long2015 的回复:]
可以输出看看,printf("%\n",EOF);
EOF其实是被定义为 -1
[/Quote]
C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\stdio.h
62:#define EOF     (-1)
pathuang68 2011-06-27
  • 打赏
  • 举报
回复
Windows操作系统上:Ctrl+Z后Enter即可。

Ctrl+C直接退出程序了,于楼主的要求不符。

69,371

社区成员

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

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