Bonjour,
Je suis en train de gérer la sauvegarde pour un jeu de Nintendo DS.
C'est juste une écriture (basique) sur un fichier, puis une lecture...
Mais, j'ai un soucis, je ne récupère pas les bonnes valeurs.
Pouvez vous me dire si je m'y prends bien ?
J'ai créé cette structure :
Puis la procédure sauvegarder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct { int couleur; int modeJeu; int othellierSave[10][10]; }save_struct;
Et enfin, la procédure charger :
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 void Sauvegarder(int couleur, int othellier[NB_ELEMENT][NB_ELEMENT], int modeJeu){ int i; int j; FILE *fichier=NULL; save_struct save_data; fichier=fopen("othellods.sav","wb+"); if(fichier == NULL){ PA_OutputText(1,8,20,"Erreur"); } else { save_data.couleur=couleur; save_data.modeJeu=modeJeu; for(i=0;i<=9;i++){ for(j=0;j<=9;j++){ save_data.othellierSave[i][j]=othellier[i][j]; } } fwrite(&save_data,sizeof(save_data),1,fichier); } fclose(fichier); }
Lorsque j'affiche dans charger, j'ai le bon résultat comme couleur en cours, bon resultat pour mode de jeu, mais j'obtiens une valeur immense comme première case de tableau).
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 void Charger(){ FILE *fichier=NULL; //Fichier de sauvegarde save_struct save_data; fichier=fopen("othellods.sav","r"); fread(&save_data, sizeof(save_data), 1, fichier); fclose(fichier); PA_OutputText(0,1,3,"Couleur en cours : %d",save_data.couleur); PA_OutputText(0,1,4,"Mode de jeu : %d",save_data.modeJeu); PA_OutputText(0,1,5,"1ere case du tableau : %d",save_data.othellierSave[0][0]); //Jouer(save_data.othellierSave,save_data.modeJeu,save_data.couleur,1); }
Pouvez vous m'aider, merci.
Partager