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:
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?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); }

Rispondi quotando