salve.. ho problemi con una fscanf che restituisce inspiegabilmente valore 0 solo quando legge dalla seconda riga del file in poi..

esempio di file:

145451 Bianchi Laura 05ASO 20
143454 Rossi Alberto 06ACF 29
151978 Verdi Giovanni 07AXL 18
143454 Rossi Alberto 05ASO 28
145451 Bianchi Laura 07AXM 23
145451 Bianchi Laura 07AXM 26

e questo è il mio codice:

while(fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,c od,&voto) != EOF) {
....
printf("%ld%s%s%s%d\n",matr,cognome,nome,cod,voto) ;
....
}

legge la prima riga.. dopodichè restituisce sempre 0 alla fscanf e non capisco perchè.

per curiosità ho provato a fare questo:

fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);
fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);
fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);
fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);
fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);
fscanf(fp,"%ld%s%s%s%d",&matr,cognome,nome,cod,&vo to);

in questo modo non mi dà nessun problema e legge tutte le righe.. è ovvio che però cosi non mi serve a niente nel programma..


non so piu dove sbattere la testa e magari è un problema da niente ma nn lo vedo..

fatemi sapere.. grazie!
ciao