Jump to content

problema na escrita de ficheiros


MagicCell

Recommended Posts

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聽 馃槙 ]

eh verdade, como podem ver pelo c贸digo, estou a usar no windows聽 馃槢

(se postei a duvida no lugar errado, desculpem e digam onde 茅)聽 ?

Obrigado聽 馃憤

Link to comment
Share on other 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.

<3 life

Link to comment
Share on other sites

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

Podes ver um exemplo de como funciona aqui:

http://www.portugal-a-programar.pt/index.php?showtopic=4655

Pessoalmente n茫o vou muito 脿 pala com fprintf's e afins, prefiro usar o fgets/fputs para ler/escrever em ficheiros de texto.

"Nunca discutas com um idiota. Eles arrastam-te at茅 ao seu n铆vel e depois ganham-te em experi锚ncia"

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
×
×
  • 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.