The Programming Language中的 代码问题

在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是文件结束符吧