#include #include #include int main(int argc, char *argv[]) { FILE *fp; int ch; int in_word = 0; // Flag: 1 if inside a word, 0 otherwise long word_count = 0; // Check for correct usage if (argc != 2) { printf("Usage: %s \n", argv[0]); return 1; } // Open file in read mode fp = fopen(argv[1], "r"); if (fp == NULL) { perror("Error opening file"); return 1; } // Read character by character while ((ch = fgetc(fp)) != EOF) { if (isspace(ch)) { // Whitespace ends a word in_word = 0; } else if (!in_word) { // Start of a new word in_word = 1; word_count++; } } fclose(fp); printf("Total number of words: %ld\n", word_count); return 0; }