Ir ao conteúdo
  • Cadastre-se

erro na impressão fread


RafaelGSS

Posts recomendados

 

Pessoal estou com um erro aqui em meu código, creio que a função de cadastro esteja correta, o problema está na hora de listar os contatos e talvez em salvar na Variavel INT RA,

eu cadastro uma pessoa, e ele nao lista e meu RA contem lixo de memoria

void guardarDados(FILE *x ,struct Alunos contato){ // Salvar dados ao final do arquivo
//Escreve os dados tomados pela função pegarDados no arquivo *x
fseek(x, 0L, SEEK_END); //Colocar ponteiro no final do arquivo para não sobreescrever o cadastro anterior
fwrite(&contato,sizeof(struct Alunos),1,x);
return;

}
void listar(){ // Listar dados gravados
//Função que imprime tdos os contatos cadastrados do arquivo referente
    system("cls");
    FILE *fp;
    fp = fopen("agenda.txt", "r");
    if(fp == NULL){
        printf("Não foi possivel abrir o arquivo");
        return;
        }
    struct Alunos contato;
    rewind(fp); // Volta o ponteiro ao começo do arquivo
    //ler um a um enquando não chegar ao fim do arquivo
    while(lerDadosArquivo(fp,&contato))//fread retorna o numero de arquivos lidos como mandou ler só 1, se nao conseguir retornará 0(FALSE
    {
    //Evitar lista de contatos excluidos
        if(contato.nome[0] != '*'){
            imprimirContato(contato);
                    }
        }
        getchar(); // PAUSAR A TELA
        fclose(fp);
    return;
}
void imprimirContato    ( struct Alunos x ){ // Função chamada pela função listar, para mostrar na tela dados
    //imprime o contato recebido por referencia.
    printf("Nome:%s                   RA:%d\n", x.nome,x.RA);
        return;
    }
int lerDadosArquivo (FILE *x, struct Alunos *y){ // fread no arquivo
return fread(y,sizeof(struct Alunos),1,x);
}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...