Qual' è lo scopo di mettere la fscanf in un while?while(fscanf(fp,"%s\t%s\t%d\n",u.nome,u.diff,&u.te mpo)>0)
Nel while la condizione necessaria è anche che sia maggiore di zero.La scanf ritorna il numero di elementi letti con successo.de u.diff e u.nome sono due puntatori la stai usando correttamente,ma non vedo la necessità di inserirla in un ciclo,forse intendevi metterla in un if.
Meglio se fai vedere tutto il codice interno.