C : fichier de sauvegarde

Sara426 Messages postés 782 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

Je programme en C et le but du projet est de faire un mastermind (le jeu avec des couleurs et il faut deviner la combinaison)

Le programme est terminé mais il faut faire un système de sauvegarde de la partie.
Par exemple quand on va lancer le jeu, s'il y a déjà une partie sauvegardée, le programme doit demandé si l'utilisateur veut continuer sa partie ou en commencer une nouvelle.

J'ai regarder un livre et il parle de fopen.
Mais je n'ai pas trouvé (et compris) la syntaxe.

Merci d'avance pour votre aide.

Cordialement,
Sara.

4 réponses

Utilisateur anonyme
 
En faite fopen ouvre un fichier, après tu peux écrire dedans, et le système que tu parle, au lancement de ton jeu, ton programme va rechercher le fichier, si celui-ci existe pas il le créer et si il existe il lit les lignes et tu fais une petite fonction qui scanne les lignes pour restaurer l'état des cases.

https://www.programmez.com/tutoriels.php?tutoriel=56&titre=Les-fichiers

Par contre ton jeux à l'air intéressant, donc si tu comptais le mettre open source ce serais sympa de faire partager le code.
0
Sara426 Messages postés 782 Statut Membre 63
 
Pour l'open source on verra une fois que la date à laquelle on doit rendre le projet soit passée.

Par contre comment est-ce qu'on fait pour récupérer les données d'un autre programme ?
On a le jeu qui lance le mastermind et à l'intérieur il y a un tableau qui retient la solution gagnante. Comment on fait pour récupérer ce tableau (ou le pointeur) pour l'afficher dans le fichier texte ?
0
Utilisateur anonyme
 
Je sais pas sous quel forme est le tableau, mais si par exemple ce sont des nombre dans un ordre, tu récupere chaque nombre et tu le met dans le fichier texte et quand tu le lis tu lis ligne par ligne et tu met les lignes dans le tableau pour restaurer la partie.
0
Sara426 Messages postés 782 Statut Membre 63
 
C'est bon. On a résolut ce problème.

Mais maintenant c'est quand on recharge la partie.
Dans le fichier de sauvegarde on a :
le nombre de coups, la combinaison proposée, le nombre de pions biens et mal placés.

Pour les récupérer on utilise un fscanf et un printf pour l'afficher ensuite.
Malheureusement, ça boucle à l'infini.
0
Sara426 Messages postés 782 Statut Membre 63
 
void reprise (char combi[], char prop[], int p, int c, int nb_coups, int bp, int mp)
{
FILE *sauve = NULL; //On initialise le pointeur
sauve = fopen("sauvegarde.txt","a+"); // permet de lire le fichier et de réécrire à l'intérieur
/* a+ lit le fichier puis se place à la fin pour écrire à la suite */


fscanf(sauve, "%d %d\n", &p, &c);
printf("vous avez %d pions et %d couleurs \n", p, c);

fscanf(sauve, "%c%c%c%c", &combi[0], &combi[1], &combi[2], &combi[3]);
printf("combinaison : "); affiche_tab(combi, p); printf("\n");


while (sauve!=NULL)
{
fscanf(sauve, "%d\n%c%c%c%c\n%d\n%d\n", &nb_coups, &prop[0], &prop[1], &prop[2], &prop[3], &bp, &mp);
printf(" nb_coups = %d prop %c %c %c %c bp = %d mp= %d \n", nb_coups, prop[0], prop[1], prop[2], prop[3], bp, mp);
}

}
0
Sara426 Messages postés 782 Statut Membre 63
 
Est-ce que je peux remplace le (sauve!=NULL) par un genre de fscanf ?

Par exemple si le programme lit un caractère, comme Q (quitter), alors il arrête la lecture du fichier ?
0
Utilisateur anonyme
 
Moi j'aurais charger le fichier en mémoire et faire une sauvegarde à la fermeture de la fenêtre. Ou un bouton sauvegarde. Ou lettre si tu es en console.
0