écriture d'un score dans un fichier [ C ]
Résolu
---vivi---
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
---vivi--- Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
---vivi--- Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
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!!!");
}
A voir également:
- Fichier score exact
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
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.
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
PS: peut tu me donner un petit exemple d'une utilisation de frewind() ? je sais je suis nul