Grazie mille solito errore di distrazione

codice:
if(fscanf(fp,"%s %lf %d %d",v[i].fornitore, &v[i].prezzo, &v[i].codice, &v[i].quantita)!=4);
        {perror(nomefile); *dim=-1; return NULL;}
    }
ora in questo blocco mi fa eseguire l'if anche se non dovrebbe dato che il file di testo è il seguente:

codice:
3
Pfannu 23.00 34234 2
Canu 2.44 9903 10
asd 3.44 04932 3