Ciao a tutti.
Ho un problema con una parte di esercizio e se non lo risolvo non posso andare avanti.

Questo il testo della parte al momento interessata:
Quote:
Una biblioteca ha immagazzinato in un file di testo i dati relativi ai libri posseduti.
Nel file di testo sono memorizzate, utilizzando tre righe del file per ogni libro, le seguenti informazioni- elenco degli autori
- titolo del libro
- tipologia(giallo,azione,ecc...)
|
Questo il codice
Codice:
#include<stdio.h>
#include<string.h>
#define MAX 50
struct tlibro{
char autori[MAX];
char titolo[MAX];
char tipologia[MAX];
};
struct tlibro libro;
main()
{
int n;
FILE *fp;
fp=fopen("libri.txt","r");
if(fp==NULL)
printf("Si e' verificato un'errore nell'apertura del file\n");
else{
int c;
while(!feof(fp)){
n=fread(&libro,sizeof(struct tlibro),1,fp);
printf("%s\n",libro.autori);
printf("%s\n",libro.titolo);
printf("%s\n",libro.tipologia);
}
fclose(fp);
}
system("pause");
}
Questo il file di testo che ho creato per prova
Quote:
DANTE
LA DIVINA COMMEDIA
COMMEDIA
DESCARTES
DISCORSO SUL METODO
SAGGISTICA
UMBERTO ECO
IL NOME DELLA ROSA
LETTERATURA
|
E questo è invece è l'output che ottengo a video
Il problema, secondo me, è che leggendo MAX caratteri dalla stringa si va a prendere anche quelle successive,ho provato anche con fgets() ed fscanf() ma senza risultato.
Mi sapreste aiutare?