好的伙计们,所以我写了这个程序
#include <stdio.h>
/* count words */
main ()
{
int c, c2;
long count = 0;
while ((c = getchar()) != EOF)
{
switch(c)
{
case ' ':
case '\n':
case '\t':
switch(c2)
{
case ' ':
case '\n':
case '\t':
break;
default:
++count;
}
}
c2 = c;
}
printf("Word count: %ld\n", count);
}
如您所见,它计算输入中的单词。所以我写了一个名为 a-text 的文件,它只有
a text
我在 ubuntu 提示符下写了
./cw < a-text
它写道
Word count: 2
那么,到底是什么?它不应该只计算 1,因为在第二个单词之后没有制表符、新行或空格,只有 EOF。为什么会这样?