écriture d'un score dans un fichier [ C ]
Résolu
---vivi---
Messages postés
83
Statut
Membre
-
---vivi--- Messages postés 83 Statut Membre -
---vivi--- Messages postés 83 Statut Membre -
Bonjour, j'ai fait un petit jeu en code console et je voulais écrire le meilleur score dans un fichier mais j'ai 2 problème:
1- mon programme ne tient pas compte de l'ancien score.
2- l'ancien score ne s'efface pas quand le nouveau est plus grand que lui.
Voici le bout de code qui gère le score:
FILE* fichier = NULL;
fichier = fopen("score.txt", "r+");
fscanf (fichier, "%.1lf", &score);
if (fichier != NULL)
{
if(score < (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC)
{
score = (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC;
fprintf(fichier,"%.1lf", score);
printf("votre meilleur score est de %.1lf point\n", (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC);
}
else
{
printf(fichier,"votre meilleur score est de %.1lf point\n", score);
fclose(fichier);
}
}
else
{
printf("ERREUR!!!");
}
1- mon programme ne tient pas compte de l'ancien score.
2- l'ancien score ne s'efface pas quand le nouveau est plus grand que lui.
Voici le bout de code qui gère le score:
FILE* fichier = NULL;
fichier = fopen("score.txt", "r+");
fscanf (fichier, "%.1lf", &score);
if (fichier != NULL)
{
if(score < (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC)
{
score = (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC;
fprintf(fichier,"%.1lf", score);
printf("votre meilleur score est de %.1lf point\n", (reponseJuste * 100) / (double)(t2-t1)/CLOCKS_PER_SEC);
}
else
{
printf(fichier,"votre meilleur score est de %.1lf point\n", score);
fclose(fichier);
}
}
else
{
printf("ERREUR!!!");
}
Configuration: Windows XP Firefox 3.0.5
4 réponses
-
Salut.
Fait un sortie pour voir si l'ancien score est bien lu.
Si tu veux écraser l'ancien score, il faut remettre le pointeur du fichier au début de celui-ci. En effet, lors de ton scanf, tu lis l'ancien score, donc ton pointeur de fichier est maintenant positionné après ce score.
fait un frewind() avant d'écrire dedans. -
ah oui merci, je me disait bien que c'était un probleme comme ça mais je savais pas comment le résoudre merci beaucoup.
PS: peut tu me donner un petit exemple d'une utilisation de frewind() ? je sais je suis nul -
http://www.manpagez.com/man/3/rewind/
Petite erreur, c'est rewind(FILE *) et non frewind(). -
Ok merci grâce à toi je peut enfin faire des jeux console un peu plus potable