Come mai quando chiamo la funzione fscanf() mi legge solo i primi valori del file?

codice:
fopen("punteggi.txt","r"); 
                   clrscr();
                   printf("Nome\tDifficolta'\tTempo(sec)\n");
                   while(fscanf(fp,"%s\t%s\t%d\n",u.nome,u.diff,&u.tempo)>0){
                   printf("%s\t%s\t%d\n",u.nome,u.diff,u.tempo);