Bonjour à tous,

Me voilà avec un soucis, j'essaye actuellement de sauvegarder les meilleurs
temps réaliser par chaque joueur pour une partie je voudrais donc gérer un historique des records.

Petits soucis en fait j'arrive à lire le fichier texte mais à partir du moment ou j'essaye d'écrire dans le fichier il m'efface tous mon fichier texte...

J'ai essayer également de mettre dans le même fichier texte le nom du joueur et de lui faire correspondre son temps ainsi :

28 Moi
49 Moi
62 Toi
...

Ainsi pouvoir effectuer un listing des 10 meilleurs temps !
La fin de mon code est en commentaire car ne fonctionnant pas du tous je l'ai quand même jointe dans le cas où je serais pas loin de la solution.

J'ai vu que je devais utiliser fseek, mais pour le moment je n'y suis pas encore arriver...

Actuellement pour mon code j'ai ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
 
#include <stdio.h>
#include <stdlib.h>
 
 
void record(int niveau,int sec,int score[6],int Record[20]);
 
int main()
{
    int score[6]={0};
    char Record[20];
 
    record(1,20,score,Record); // Pour s'implifier ici j'ai imposer le niveau 1 et un record de 20 secondes
 
    return 0;
}
 
 
void record(int niveau,int sec,int score[6],int Record[20])
{
    int I,J;
    FILE* fichier;
 
    if (niveau==1)
        fichier = fopen("rec_fac.txt", "r");
 
    if (fichier != NULL)
    {
        for (I=0;I<1;I++)
        {
            //int tmp;
            fscanf(fichier,"%u",&score[I]);
            //score_fac[I] = tmp;
            printf("Record precedent %u\n",score[I]);
            printf("Votre temps : %d s \n",sec);
        }
 
        //On ferme le fichier qui a été ouvert
        printf("\n");
        fclose(fichier);
    }
 
    else
    {
        //On affiche un message d'erreur si on veut
        printf("Impossible d'ouvrir le fichier .txt");
    }
    fflush(stdout);
 
    //printf("%i\n",score[0]);
    //printf("%i\n",sec);
 
    //**************REMPLACEMENT D'UN DES MEILLEURS TEMPS******************//
 
    if (sec<score[0])
    {
        if (niveau==1)
        fichier = fopen("rec_fac.txt", "w");
 
        if (fichier != NULL)
        {
            fseek(fichier, 0, SEEK_SET);
            fprintf(fichier,"%u",sec); //<<<<<< PROBLEME ICI J'EFFACE TOUS LE FICHIER...
 
            // On ferme le fichier qui a été ouvert
            printf("\n");
            fclose(fichier);
            printf("Nouveau Meilleur Temps sauvegarder\n");
        }
        else
        {
            // On affiche un message d'erreur si on veut
            printf("Impossible d'ouvrir le fichier .txt");
        }
        fflush(stdout);
    }
 
        //CETTE PARTIE NON PLUS NE FONCTIONNE PAS CAR J'AIMERAIS REMPLACER LE NOM DE L'ANCIE JOUEUR PAR CELUI DU NOUVEAU...
 
        //**************REMPLACEMENT DU NOM CORRESPONDANT AU MEILLEUR TEMPS******************//
        /*
        printf("Meilleur Temps FELICITATION !!!!!!!!!!!!\n");
        do
        {
            printf("Entrez votre Nom (max.10):");
            scanf("%s",Record);
        }
        while (strlen(Record)>11);
 
        //fichier = fopen("record_.txt", "w+");
        //fprintf(fichier,"%u",NULL);
        if (fichier != NULL)
        {
 
            for (I=0;Record[I]!='\0';I++)
            {
                fprintf(fichier,"%c",Record[I]);
            }
            // On ferme le fichier qui a été ouvert
 
            printf("\n\nsauvegarde effectuee\n");
            printf("\n");
            fclose(fichier);
        }
        else
        {
            // On affiche un message d'erreur si on veut
            printf("Impossible d'ouvrir le fichier .txt");
        }
        fflush(stdout);
 
        printf("\n");
    }
 
    else
    {
        printf("Vous n'avez pas etablit de record la prochaine fois ;-) \n");
        printf("\n");
    }*/
 
    getch();
    return 0;
}
Code fichier des records : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
100          Masterix59
0 	     Moi
0            Moi
0            Moi
0            Moi
0            Moi
0            Moi
0            Moi
0            Moi
0            Moi

Merci d'avance pour votre aide !

Masterix 59