Ma bisogna usare per forza fread?

Si usano puntatori e si crea una funzione apposita che gestisce i dati del file, magari utilizzando fgets, in cui viene opportunamente riempita la struttura.