Questo dipende da come hai scritto il file.Se l' hai scritto in binario o usando la fprintf mettendo i giusti formati, allora te lo legge correttamente.Se invece l' hai scritto usando il blocco note allora probabilmente quei numeri te li ha scritti come se fossero dei caratteri, per cui se leggi con %d leggi il valore dei primi 4 bytes (sempre che la dimensione sulla tua macchina sia questa), che però comprendono i primi 4 caratteri.
Per cui leggi tutto con la fgets e poi dividi la stringa in token usando lo spazio come separatore, e ricomponi le singole parole e numeri (atoi per la conversione da stringa a numero).