Store contents of file . txt for a vector and vice versa

Asked

Viewed 492 times

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);
}
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.