1
Good evening. I need to read a text file and store each book (Struct book) in an array of books. The code has functions to add, edit, delete and view in the array each book.
I cannot properly save the file and I think that is why I cannot pass the contents of the file to the array.
//estrutura do livro
typedef struct livro{
char titulo [50];
char isbn [30];
char autor[30];
int edicao, ano;
float preco;
} livro;
livro lista[SMAX];
int main (){
FILE *bb;
int p = 0;
char resposta;
//passar do ficheiro para a lista
bb=fopen("basedadoslivros.txt","r");
// enquanto conseguir ler do ficheiro .....
if(bb!=NULL){
while(fread(&lista[p], sizeof(livro), 1, bb) != 0) {
p++;
//saltar para o livro que pretendemos
fseek(bb, sizeof(livro), SEEK_CUR);
}
}
if(p!=0){
m=p;
}
printf("***************************** Lista de Livros
*********************************\n" );
resposta='n';
while (resposta =='n'){
menu();
setbuf(stdin, NULL);
resposta=fim();
printf ("\n");
}
bb = fopen("basedadoslivros.txt","w"); //abrir ficheiro para criar novo
fwrite (&lista,sizeof(livro)*(m+1), sizeof (livro), bb);
//adicionar dados
int ret = fwrite(lista, sizeof(livro), m, bb);
printf("%i\n",ret );
fclose(bb);
return (0);
}