Ciao,

mi trovo davanti ad un problema nella gestione dei file; non riesco a trattare le condizioni sull'EOF, mi spiego:

in un esercizio dovevo contare le occorrenze di una parola; ho ciclato delle fscanf, ma non riesco a fargli riconoscere l'EOF. non esce dal ciclo. Ecco il mio codice, tenete presente che la prima parte riguarda invece il conto dei caratteri:

codice:
#include<stdio.h>
#include<string.h>
#define FNAME "frank.txt"

int main () {
    FILE * punt;
    punt = fopen(FNAME, "r");
    
    // calcolare la lettera con + occorrenze
    int i, k, max, j;
    char Az[500];
    for (i=0; i<500; i++) {
        Az[i]= 0;
        }
    char c;
    k= 0;
    
    while (c != EOF ) {
          c= fgetc(punt);
          Az[k]= (Az[k] + 1);
          k++;
          }
    i= 33; //evito caratteri strani e spazio
    while (i < 500) {
          if (max < Az[i]) {
                  max= i;
                  }
              
    printf("\nCi sono %d lettere e quella che compare piu' volte è la %c", k, (char)Az[max]);
    
    // torno all'inizio del file
    fseek(punt, 0, SEEK_SET);
    // cerco la tringa the
    char the[]= "the";
    char string[30];
    j= 0;
    
    while ( string != EOF ) {
          fscanf(punt, "%s", string);
          j= j+ (strcmp(the, string));
          }
    printf("\nLa parola the compare %d volte nel file", j);
    fclose(punt);
}
la condizione nell'ultimo while non può essere verificata in quanto è un confronto tra un puntatore ed un intero... ma come faccia allora ad uscire dal ciclo?