MagicCell Posted December 2, 2007 at 11:13 PM Report Share #151868 Posted December 2, 2007 at 11:13 PM 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 More sharing options...
Triton Posted December 3, 2007 at 12:12 AM Report Share #151878 Posted December 3, 2007 at 12:12 AM 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 More sharing options...
MagicCell Posted December 3, 2007 at 12:16 AM Author Report Share #151881 Posted December 3, 2007 at 12:16 AM por isso eh que eu perguntei como usar o fgets ou entao outra maneira para o fazer 🙂 Link to comment Share on other sites More sharing options...
Hipnoted Posted December 3, 2007 at 12:20 AM Report Share #151882 Posted December 3, 2007 at 12:20 AM 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 More sharing options...
MagicCell Posted December 3, 2007 at 05:40 PM Author Report Share #151985 Posted December 3, 2007 at 05:40 PM obrigados 🙂 já agora, podem-me dar 1 dica de como fazer o ciclo para esperar por 1 tecla premida para mexer o pacman ?? 😁 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now