Ya probaste con fgets.fgets te permite leer cadenas con espacios, creo que su uso es mas o menos asifgets(fichero,cadena para guardar texto, numero de caracteres a guardar);Mas o menos, creo que va asi con esos argumentos,ahora como dice el cuate de arriba, para estructuras es mejor usar fread y fwrite, ademas te sirven para escribirlos de modo binario, no solo texto.Espero que te sirva adios
Perdon por la tardanza, fgets es similar a gets, es decir ambas son funciones para cadenas de caracteres(texto), y si , puedes usar fgets en lugar de fscanf, nada mas que creo que fgets interpreta los datos como una cadena(creo), ademas tienes que pasarle el numero de caracteres que quieres que te lea, el archivo y creo que el buffer do nde se va a guardar la cadena.