Originariamente inviato da matteever
Fa esattamente come prima... e comunque le avevo stampate in questo modo...
codice:
fprintf(fp,"%s\t%s\t%d\n",u.nome,u.diff,u.tempo);
Forse c'entra in qualche mode la modalità di apertura?(ho usato a+)
In che senso hai usato a+ ??
Nel codice che hai postato all'inizio hai messo correttamente la modalità di apertura "r" (dove t di text è giustamente implicito)...
Comunque per quanto riguarda l'inserimento della fscanf nel ciclo while entrambe le modalità che avete enunciato sono valide, infatti ci sono due modi per verificare di leggere un file fino alla fine:
1) poichè la fscanf ritorna il numero di elementi letti, si può far iterare fino a che legge il numero di elementi desiderati (consiglio di esplicitare questo piuttosto che impostare > 0 ), ad esempio:
codice:
while ((fscanf (f, "%d %d %d\n", &a, &b, &c)) == 3)
2) poichè i file di testo hanno EOF, si può far iterare fino a che non viene letto solo esso, ad esempio:
codice:
while ((fscanf (f, "%d %d %d\n", &a, &b, &c)) != EOF)
A mio parere, con la prima modalità si hanno più sicurezze...
Per quanto riguarda il tuo problema, l'unica cosa che mi viene in mente è, dato che sei tu che gli hai scritto sopra, l'hai chiuso prima di andare a rileggerlo?