écriture d'un score dans un fichier [ C ]

Résolu
---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!!!");
}
A voir également:

4 réponses

Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
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.
0
---vivi--- Messages postés 83 Statut Membre 11
 
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
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
http://www.manpagez.com/man/3/rewind/
Petite erreur, c'est rewind(FILE *) et non frewind().
0
---vivi--- Messages postés 83 Statut Membre 11
 
Ok merci grâce à toi je peut enfin faire des jeux console un peu plus potable
0