在The Programming Language导言的1.5.4小节,有意额单词计数程序,为什么我敲出来之后输入字符串 然后再敲回车 没反应呢?代码跟书上的一样啊。代码如下,求助!!!
#include
#define IN 1
#define OUT 0
main()
{
int c,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF)
{
++nc;
if(c=='\n')
nl++;
if(c==' '||c=='\n'||c=='\t')
state=OUT;
else if(state==OUT)
{
state=IN;
++nw;
}
}
printf("%d %d %d\n",nl,nw,nc);
}
这个程序很不好,变量都使用一些无意义的字符,你还照着模仿。难道这种图书根本不教你编程,而只是让你照着输入么?干脆改名叫“中专学校打字教程”算了。
while((c=getchar())!=EOF),这一句看明白,EOF是文件结束符,不是换行符。
所以按回车不表示输出完成了,输入完成后按ctrl+z表示输入一个结束符,然后就有输出了。
楼上说得对,EOF是文件结束符吧