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-文本只有
a text
,我在Ubuntu提示
./cw < a-text
寫道,它寫道
Word count: 2
那麼,到底是什麼?它不應該只計數1,因爲在第二個單詞之後沒有標籤,也沒有新的行和空格,只有EOF。爲什麼會發生?
你是如何寫入文件會發生什麼?我剛剛做了'printf'文本「> a-text',你的程序報告:'字數:1'。我的猜測是,你的'a-text'文件末尾可能還有一個新行。 – Th3Cuber
@ Th3Cuber不,我打開gedit,寫下「一個文本」並將其保存爲一個文本。我已經檢查過了,文本結尾處沒有新的行。我試過用其他文件,它總是給出正確的字數 – rodrigoms
@ user2510987 IIRC gedit會自動在文本的末尾添加一個換行符,除非您在首選項中明確禁用該功能。 – Will