-1

単語と行を数えるためにこのプログラムを作成しましたが、ファイルを入力すると、\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;
}
4

1 に答える 1