Ciao,
prima di tutto ecco il codice:
Non state a vedere la mancanza di controlli o il perchè apro il file due volte in quanto questo è solo un frammento di codice di un programma più complesso. Quello che voglio riuscire a fare è questo:codice:#include<stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char* argv[]) { FILE *fp; char stringa[] = "ciao\n"; int i, cont; /* inizializzazione file */ fp = fopen("prova.txt", "w"); i = 0; fprintf(fp, "%d \n", i); fclose(fp); /* aggiunta nuova stringa e aggiornamento contatore stringhe presenti nel file */ fp=fopen("prova.txt", "a"); fputs(stringa, fp); rewind(fp); fscanf(fp, "%d", &cont); printf("cont=%d\n", cont); cont++; rewind(fp); fprintf(fp, "%d", cont); fclose(fp); return 0; }
1) Inizializzare un file salvandoci il valore di una variabile che mi servirà come contatore per capire quante stringhe ci sono nel file. Ogni stringa occupa una riga del file.
2) Scrivere una nuova stringa e andare ad aggiornare il valore del contatore.
Il problema sta nella fscanf che non mi legge un valore corretto pur essendomi posizionato (a me pare) nella giusta posizione del file.
Dove sbaglio?

Rispondi quotando