Jump to content

[Resolvido] Update um menu ficheiro


lulamen
 Share

Recommended Posts

Boa tarde,

Tenho um programa cujo menu é relativamente simples e que faz algumas funcionalidades tais como isto:

1-Listar Pessoas

2-Adicionar Pessoas

3-Eliminar Pessoas

Estas pessoas a que me refiro estão guardadas num ficheiro binário com a ajuda de uma estrutura

Quando eu adiciono pessoas ele pede-me a nome de cada pessoa e a idade e guarda num ficheiro binário mas depois escolho a opção 1 e ele não mostra nada. Só depois de fechar a command window e voltar a compilar é que ele da a lista de pessoas. O mesmo acontece com eliminar pessoas... Eu elimino e depois quero ver a lista e ele nao mostra a lista atualizada. Mostra apenas depois de compilar novamente.

Alguem me pode ajudar?

Link to comment
Share on other sites

Primeiramente, ja consegui detetar o erro no que toca ao listar pessoas logo depois de as adicionar. O Erro estava num close(f) na funcao enviar_informação. E erro estava numa falta de uma letra "f" ou seja, fclose(f). Agora, no que toca à eliminação, o programa elimina correctamente mas depois nao elimina o ficheiro "jogadores.bin" e faz o rename do ficheiro "temp.bin". Apenas o faz se eu ao eliminar o id de uma pessoa e fechar o programa e voltar a compilar ele, aí sim, faz o processo corretamente

Link to comment
Share on other sites

primeiro altera as segunites linhas :

#include <errno.h>
#include <string.h>

// ...
       if (remove(fich_pessoas) != 0) {
           printf("erro ao eliminar o ficheiro %s : %s\n", fich_pessoas, strerror(errno));
       }

       if (rename("temp.bin","jogadores.bin") != 0) {
           printf("erro a copiar o ficheiro 'temp.bin' para 'jogadores.bin' : %s\n", strerror(errno));
       }
// ...

depois, o erro está na falta de fecho do ficheiro num momento específico

toma atenção se todas as vezes que abres o ficheiro o fechas (eu sei que não, por isso não respondas que fechas ...)

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.