OKみんな、だから私はこのプログラムを書いた
#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
それで、一体何?2 番目の単語の後には、タブも改行もスペースもなく、EOF だけなので、1 と数えるべきではありません。なぜこれが起こるのですか?