Ringrazio tutti due. Io avevo QUASI risolto così (anche se sicuramente le vostre soluzioni sono migliori e funzionano).
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char* argv[])
{
	FILE *fp;
	char stringa[] = "ciao\n";
	int cont=0, i;
	char ch;
	char s_contatore[10];

	/* inizializzazione file */
	fp = fopen("prova.txt", "w");
	fprintf(fp, "%d\n", cont);
	fclose(fp);

	/* aggiunta nuova stringa e aggiornamento contatore stringhe presenti nel file */
	fp=fopen("prova.txt", "a");
	fputs(stringa, fp);
	rewind(fp);
	i = 0;
	while( ((ch = fgetc(fp)) != '\n') && (i < 10) )
	{
		s_contatore[i] = ch;
		i++;
	}
	s_contatore[i] = '\0';
	cont = atoi(s_contatore);
	printf("%d", cont);

	cont++;
	rewind(fp);
	fprintf(fp, "%d\n", cont);
	fclose(fp);

	return 0;
}
In questo codice c'è comunque ancora il problema fatto notare da andbin (quello della rewind).
Proverò uno dei vostri suggerimenti.
Vi ringrazio ancora.