Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

JoBlack

[Dúvida] Listagem ordenada por...

Mensagens Recomendadas

JoBlack    0
JoBlack

Olá pessoal

No prg que estou a fazer pedem-me que faça listagens de autores por 'nome' e por 'nacionalidade'. Já andei a ver se conseguia alguma coisa mas não consegui chegar a conclusões. O código que fiz e que coloco abaixo só me lista pela ordem natural com que foram inseridos os dados, ou seja, pelo nr.

Alguém me pode dar uma ajudita?

Obrigado.

Parte do código que interessa:


#define FICH3 "Autores.dat" 

struct autor
{
    int nr;
    char nome[50], nacion[20];
} AUT;

FILE *fa;

void ad_autor()
{
    fa=fopen(FICH3,"a+");
    system("CLS");

    while(fread(&AUT,sizeof(AUT),1,fa)==1)
    ;
    AUT.nr+=1;
    fseek(fa,0,SEEK_END);
    printf("\n\t Nome: ");
    fflush(stdin); gets(AUT.nome); AUT.nome[49]=' '; AUT.nome[50]='\0';
    printf("\n\t Nacionalidade: ");
    fflush(stdin); gets(AUT.nacion); AUT.nacion[19]=' '; AUT.nacion[20]='\0';
    fwrite(&AUT,sizeof(AUT),1,fa);
}



void List_autor()
{
   fa=fopen(FICH3,"r");
   system("cls");
   rewind(fa);
   
   printf("\n  Nr    Nome                            Nacionalidade");
   printf("\n  ---------------------------------------------------");
   while(fread(&AUT,sizeof(AUT),1,fa)==1)
   {
    printf("\n\n   %-5d%-32s%-20s", AUT.nr,AUT.nome,AUT.nacion);
   }
    getch();
    fclose(fa);
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    309
Rui Carlos

Pelo que percebi estás a guardar as informações lidas num ficheiro. Não seria melhor guardar numa lista/árvore (ordenada)?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
untouchables    0
untouchables

Pelo que percebi estás a guardar as informações lidas num ficheiro. Não seria melhor guardar numa lista/árvore (ordenada)?

offtopic: MCC é o curso, o resto é recurso :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade