単語と行を数えるためにこのプログラムを作成しましたが、ファイルを入力すると、\n
必要なものではない単語が 1 つあると表示されます。何か案は?
#include <stdio.h>
int main()
{
FILE *file;
char word[1000];
int c;
int NumLines = 0;
int NumWords = 0;
int was_space = 1;
printf("Enter file name: ");
scanf("%s", word);
file = fopen(word, "r");
while ((c=fgetc(file)) !=EOF) {
if (c == '\n') {
NumLines++;
if (was_space == 0) {
NumWords++;
was_space = 1;
}
was_space = 1;
}
else if ((c == '\t' || c == '-' || c == ':' || c== ' ') && was_space == 0) {
NumWords++;
was_space = 1;
}
else if (c != '\n' && c != '\t' && c != '-' && c != ':' && c != ' ') {
was_space = 0;
continue;
}
else if (was_space == 1)
continue;
}
printf("%d %9d\n", NumLines, NumWords);
fclose(file);
return;
}