• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MagicCell

problema na escrita de ficheiros

5 mensagens neste tópico

ola a todos :)

tou aqui com um problema  :)

tou a tentar fazer o pacman em C  B)

ja fiz o "design" se eh que se pode chamar assim, só me falta por o bixo a andar, mostar o ranking ordenado e escrever o maldito nome no ficheiro dos rankings -.-

eu tou a usar um ficheiro de texto para guardar os rankings, consigo ler, mas n consigo escrever o novo ranking...

eu tive C ha uns 2 anitos e estou a recomecar de novo agora e nao me lembro muito bem de algumas coisas...

aqui está o codigo que tinha escrito:

void jogar()
{

clrscr();
gotoxy(25,10);
fflush(stdin);
printf("Nome: ");
gets(nome);
sleep(1);
tabuleiro();

f=fopen("c:\\ranking.txt","a");
if (f==NULL)
{
  printf("Erro na Abertura do Ficheiro \"ranking.txt\"");
  exit(1);
}

while (feof(f)==0)
{
  fprintf(f, "%d %s %s", pontos, nome, data);
}
fclose(f);
sleep(1);
clrscr();
}

--> eu para escrever, abri o ficheiro usando o "w", mas depois ele apagava o ficheiro e escrevia so aquela parte porque o "w" escreve apartir do inicio do ficheiro, e vi na net o append "a", que não me lembro mesmo de ter dado isso, e então não consigo escrever no ficheiro...

--> tambem quando estive a pesquisar, nao vi nenhum codigo que use o feof para ler e escrever em ficheiros, costumam usar o fgets [gostava que me dissessem como sff  :confused: ]

eh verdade, como podem ver pelo código, estou a usar no windows  :P

(se postei a duvida no lugar errado, desculpem e digam onde é)  :-[

Obrigado  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema está no uso do feof.

Após uma consulta rápida ao manual do fopen:

      a      Open for appending (writing at end of file).  The file  is  cre‐

              ated  if it does not exist.  The stream is positioned at the end

              of the file.

Quando abres um ficheiro em modo de append, o ponteiro do ficheiro é colocado no final do ficheiro, logo o teu while nunca chega a ser executado, pois a condição é sempre falsa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

por isso eh que eu perguntei como usar o fgets ou entao outra maneira para o fazer :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigados  :)

já agora, podem-me dar 1 dica de como fazer o ciclo para esperar por 1 tecla premida para mexer o pacman ??  :biggrin:

0

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