C : fichier de sauvegarde

Fermé
Sara426 Messages postés 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 - 28 nov. 2011 à 20:18
 Utilisateur anonyme - 30 nov. 2011 à 18:52
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

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 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 63
29 nov. 2011 à 14:14
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
29 nov. 2011 à 19:06
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 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 63
30 nov. 2011 à 16:48
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 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 63
30 nov. 2011 à 16:49
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 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 63
30 nov. 2011 à 17:13
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
30 nov. 2011 à 18:52
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