imple.c
//escreve os dados do struct para o arquivo

escreve os dados do struct para o arquivo
escreve os dados do struct para o arquivo
void write(struct livros *inv){
  FILE *fp;
  fp = fopen("db.txt","w+");
  if(fp != NULL){
    int contagem = contar(inv)+1, i;
    for(i = 0; i < contagem; i++){
      fprintf(fp, "%i|", inv[i].id);
      fprintf(fp, "%s|", inv[i].titulo);
      fprintf(fp, "%s|", inv[i].autor);
      fprintf(fp, "%s|", inv[i].genero);
      fprintf(fp, "%i|", inv[i].publicacao);
      fprintf(fp, "%s|", inv[i].editora);
      fprintf(fp, "%i\n", inv[i].exemplares);
    }
  } else {
    printf("Não foi possível abrir a base de dados.\n");
  }
  fclose(fp);
}
void write ( struct livros * inv ) { FILE * fp ; fp = fopen ( " " , " " ) ; if ( fp != NULL ) { int contagem = contar ( inv ) + 1 , i ; for ( i = 0 ; i < contagem ; i ++ ) { fprintf ( fp , " " , inv [ i ] . id ) ; fprintf ( fp , " " , inv [ i ] . titulo ) ; fprintf ( fp , " " , inv [ i ] . autor ) ; fprintf ( fp , " " , inv [ i ] . genero ) ; fprintf ( fp , " " , inv [ i ] . publicacao ) ; fprintf ( fp , " " , inv [ i ] . editora ) ; fprintf ( fp , " \n " , inv [ i ] . exemplares ) ; } } else { printf ( " ") ; } fclose ( fp ) ; }
escreve os dados do struct para o arquivo
escreve os dados do struct para o arquivo
//conta o numero de elementos no struct do heap (memória virtual) e define o i
 //itera sobre os elementos do struct gravando cada entrada em uma linha e cada propriedade separada por um pipe (|)
