Ciao,
prima di tutto ecco il codice:

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