Ir ao conteúdo
  • Cadastre-se

Ajuda com arquivos em C


matheusbarcellos

Posts recomendados

Boa noite,

Sou novo no fórum e descobri o quão útil é o compartilhamento de informações nesse fórum, por tanto, decidi participar.

Estou fazendo um jogo em C, trabalho da faculdade: resta 1. As rotinas do jogo eu já fiz e está tudo rodando corretamente. Mas, como sou curioso, decidi inovar e criar um ranking salvando a classificação, o jogador, os pontos e o tempo de jogo. É nessa hora que acontece um erro de compilação: "undefined reference to 'fprintf".

Segue abaixo a parte do código que trata do arquivo para vocês olharem.

struct treg {
int limiteranking, classificacao;
char jogador[10];
float tempo, pontos;
} Rranking;

...
main() {
FILE *ranking;
ranking = fopen("ranking.txt", "a+");
if (ranking == NULL){
printf("Erro ao abrir o arquivo");
}
...
time_t ini = time(0);
...
printf("\nDigite o seu nome: ");
scanf("%s", &Rranking.jogador);
...
Rranking.tempo = (time(0)-ini)/60.0;
Rranking.pontos = (jogadas/Rranking.tempo)*100;

fscanf(ranking, "%d", &Rranking.limiteranking);
plimiteranking = &Rranking.limiteranking;
if (plimiteranking == NULL){
fprintf(ranking, "1");
fscanf(ranking, "%d\n", &Rranking.limiteranking);
}
if (Rranking.limiteranking == 10){
rewind(ranking);
for (linhas=0;!feof(ranking);linhas++) {
fputc('\n', ranking);
}
fprinf(ranking, "1");
}else {
fscanf(ranking, "%d\n", &Rranking.limiteranking);
}
for (linhas=0;!feof(ranking);linhas++) {
if (linhas = 1) {
fscanf(ranking, "%d", &Rranking.classificacao);
pclassificacao = &Rranking.classificacao;
if (pclassificacao == NULL){
fprintf(ranking, "1");
fscanf(ranking, "%d\n", &Rranking.classificacao);
}else{
fscanf(ranking, "%d\n", &Rranking.classificacao);
}
}
}

fprintf(ranking, "%d - Jogador: %s\n", Rranking.classificacao, Rranking.jogador);
fprintf(ranking, " Pontos: %f\n", Rranking.pontos);
fprintf(ranking, " Tempo: %f\n", Rranking.tempo);
fprintf(ranking, "\n");
rewind(ranking);
fputc('\n', ranking);
fprintf(ranking, "%d", Rranking.limiteranking++);


printf("\nParabens %s! voce concluiu o jogo em %2.2f mim e você fez %4.3f pontos\n", Rranking.jogador, Rranking.tempo, Rranking.pontos);
fclose(ranking);

...

Obs.: Não consegui colocar o código com a tag. Me perdoem.

Estou precisando muito de ajuda.

Agradecido.

Matheus Barcellos

Engenharia de Computação - 1ª semestre

Técnico em informática

Link para o comentário
Compartilhar em outros sites

se o erro for nesta parte


if (Rranking.limiteranking == 10){
rewind(ranking);
for (linhas=0;!feof(ranking);linhas++) {
fputc('\n', ranking);
}
[COLOR="Red"]fprinf(ranking, "1");[/COLOR]}else {
fscanf(ranking, "%d\n", &Rranking.limiteranking);
}

é porque você esqueceu de colocar o T do fprintf

tente arrumar e veja se dar certo.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Bom, estou com o projeto quase que 99% concluído.

Só falta uma rotina para excluir o arquivo de ranking se ele estiver com mais de 20 linhas.


while(!feof(ranking)) {
ch = getc(ranking);
if (ch == '\n') {
cont++;
}
}
if (cont>=20) {
if (remove("ranking.txt") == 0) {
printf("ok");

exit(1);
}
else {
printf("n");
system("pause");
}
}
fclose(ranking);
exit(1);
}

O programa compila, mas na hora de executar ele não apaga o arquivo. Já tentei executar como administrador, mas continua dando erro.

Utilizo o Windows 7 Professional x86 (32 bits), minha IDE é o CODE::BLOCKS e o compilador é o MinGW (gcc).

O trabalho é para ser entregue amanhã... Então to precisando de ajuda urgente.

Atenciosamente,

Matheus Barcellos

Engenharia de Computação - 1ª semestre

Técnico em informática

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!