[Duvida] Manipulação de Ficheiros em C (Leitura)

Started by Tiagans, January 29, 2009, 10:04:19 PM

Previous topic - Next topic

Tiagans

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