Boas malta,
Estou a fazer um programa em que preciso de gravar e ler de ficheiros Binários com Listas Genéricas, para que 2 execuções diferentes do programa não implique perca de dados.
O programa é para um consultório médico, que tem que gravar Especialidades, Médicos, Utentes e Consultas, em estruturas.
A função para gravar em ficheiros é:
void escreve(FILE *fp, PNO cabeca, int tamanho) {
PNO ptr;
int n = conta(cabeca);
fwrite(&n, sizeof(int), 1, fp);
for (ptr = cabeca; ptr; ptr = ptr-> proximo) {
fwrite(ptr->dados, tamanho, 1, fp);
}
}
A função que lê ficheiros é:
void lerficheiro(FILE *fp, PNO cabeca, int tamanho) {
PNO ptr;
int n;
void* obj;
fread(&n, sizeof(int), 1, fp);
for (ptr = cabeca; ptr; ptr = ptr -> proximo) {
obj = malloc(tamanho);
fread(obj, tamanho, 1, fp);
inserir(&cabeca, obj);
}
}
Só que quando faço imprimir, após gravar em ficheiros e abrir de novo o programa, o programa não imprime.
Alguém me pode ajudar?
Obrigado