Resultados 1 a 4 de 4

Tópico: Ler Ficheiros em C

  1. #1
    Power Member Avatar de Tiagans
    Data do Registo
    14-12-2008
    Local
    Lisboa

    Ler Ficheiros em C

    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.

    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;
    fread(&n, sizeof(int), 1, fp);
    for (ptr = cabeca; ptr; ptr = ptr -> proximo) {
    fread(ptr->dados, tamanho, 1, fp);
    }
    }

    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

  2. #2
    Aqui tens um exemplo para listar o conteúdo de um ficheiro.

    [quote]
    struct alu {
    int nr;
    char nomes[40];
    int notas[6];
    float media;
    };

    void ListarFich (void){
    struct alu aluno;
    FILE *fp;
    int k=0,n;
    fp=fopen("localização do meu ficheiro","r");
    if (fp==(FILE *) NULL)
    printf("Erro a abrir o ficheiro");
    else {
    //podes imprimir aqui alguma coisa
    do {
    n=fread((char *)&aluno, sizeof(struct alu), 1, fp);
    printf("%d - %s", aluno.nr,aluno.nome);
    } while (n==1);
    fclose(fp);
    }
    }

  3. #3
    Power Member Avatar de Tiagans
    Data do Registo
    14-12-2008
    Local
    Lisboa
    [quote=Sparta;4227137]Aqui tens um exemplo para listar o conteúdo de um ficheiro.

    struct alu {
    int nr;
    char nomes[40];
    int notas[6];
    float media;
    };

    void ListarFich (void){
    struct alu aluno;
    FILE *fp;
    int k=0,n;
    fp=fopen("localização do meu ficheiro","r");
    if (fp==(FILE *) NULL)
    printf("Erro a abrir o ficheiro");
    else {
    //podes imprimir aqui alguma coisa
    do {
    n=fread((char *)&aluno, sizeof(struct alu), 1, fp);
    printf("%d - %s", aluno.nr,aluno.nome);
    } while (n==1);
    fclose(fp);
    }
    }
    Boas,

    Eu percebi o que disseste. Apesar de não perceber porque utilizas ali o k, mas não tem grande influencia.

    Agora o que eu queria era quando sair do programa, carregar na opção correspondente a ler de ficheiros e quando imprimisse a lista de utentes, por exemplo, estivessem la todos os utentes que estavam no ficheiro. Entendes? Como se fosse um save de um jogo, que fazes load.

    Como disseste, ele vai ler e imprimir logo.

    Mas obrigado.

  4. #4
    Então para isso usas um método que quando carregares na certa opção que referes ele vai ler o conteúdo do ficheiro e imprime essa informação no ecrã.

Tópicos Similares

  1. Ler ficheiros em C
    By Koyote in forum Programação
    Respostas: 2
    Última Mensagem: 11-09-2011, 12:57
  2. Ler ficheiros em C
    By migmcc in forum Programação
    Respostas: 4
    Última Mensagem: 08-11-2009, 00:58
  3. Ler ficheiros C
    By Innight in forum Programação
    Respostas: 6
    Última Mensagem: 12-06-2009, 13:20
  4. Ler ficheiros em c
    By ShevheNNko in forum Programação
    Respostas: 4
    Última Mensagem: 02-02-2009, 14:28
  5. [C] ler ficheiros
    By Ruanes in forum Programação
    Respostas: 3
    Última Mensagem: 25-06-2008, 07:57

Registe-se no fórum e active o seu registo para deixar de ver este anúncio.