テキストファイルを読み込み、行数と単語数をカウントし、テキストファイルで出力するプログラムなのですが、何故か単語数が0と出力されてしまいます。
どこがおかしいのか教えてください。
c
1 2#include <stdio.h> 3 4int main(void) 5{ 6 FILE *fp; 7 char str[2048]; 8 int f; 9 int w=0,l=0; 10 11 fp = fopen("list.txt", "r"); 12 13 if(fp == NULL) 14 { 15 printf("Cannot open file\n"); 16 return 1; 17 } 18 19 while(fgets(str, 2048, fp) != NULL) 20 { 21 l++; 22 }; 23 24 while((f = fgetc(fp)) != EOF) 25 { 26 if(f == ' ' || f == '\t' || f == '\n' || f == ',' || f == '.') 27 { 28 w++; 29 } 30 }; 31 32 fclose(fp); 33 34 fp = fopen("out.txt", "w"); 35 36 fprintf(fp, "Number of lines = %d\n", l); 37 fprintf(fp, "Number of words = %d\n", w); 38 39 fclose(fp); 40 41 return 0; 42} 43