Créer des sauvegardes (programmation C)
Fermé
titocross
Messages postés
2
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
14 mars 2011
-
13 mars 2011 à 19:21
.N Messages postés 25 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 16 mars 2011 à 01:42
.N Messages postés 25 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 16 mars 2011 à 01:42
A voir également:
- Créer des sauvegardes (programmation C)
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte instagram sur google - Guide
3 réponses
.N
Messages postés
25
Date d'inscription
samedi 12 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011
562
Modifié par .N le 17/03/2011 à 02:12
Modifié par .N le 17/03/2011 à 02:12
Très simple, en fait, il s'agit juste de stocker la valeur du niveau dans un fichier. Si tu souhaites implémenter ton jeu de plateforme pour qu'il créer le fichier en question dans le répertoire personnel de l'utilisateur, il faut :
-Sous Windows : créer ton fichier dans un répertoire dédié à ton jeu (que tu créer s'il n'existe pas), dans le répertoire par défaut des fichiers relatifs aux différents programmes et spécifique à l'utilisateur actif. On trouve ce répertoire dans : C:\Nom de l'utilisateur\AppData\Roaming.
Tu peux récupérer celui-ci avec la variable d'environnement %APPDATA%.
-Sous Linux : créer ton fichier dans un répertoire dédié à ton jeu (que tu créer s'il n'existe pas), dans le répertoire personnel de l'utilisateur. On trouve ce répertoire dans : home/Nom de l'utilisateur.
Tu peux récupérer celui-ci avec la variable d'environnement $HOME.
Le répertoire de ton jeu devrait préférablement être précédé d'un ".", pour être un «fichier caché».
Pour récupérer une variable d'environnement sous un système quelconque, il faut utiliser la fonction de la librairie standard «getenv( const char * name )» (http://www.cplusplus.com/reference/cstdlib/getenv/
Pour manipuler des fichiers, il faut utiliser les fonctions :
FILE * fopen ( const char * filename, const char * mode );
int fclose ( FILE * stream );
int fputc ( int character, FILE * stream );
int fgetc ( FILE * stream );
ou encore
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
Si tu es vraiment très très débutant, tu peux trouver un bon tutoriel sur le «Site du Zéro» (https://openclassrooms.com/fr/ à propos des bases de base du C : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c et des bases de base de la manipulation de fichier : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16421-lire-et-ecrire-dans-des-fichiers
-Sous Windows : créer ton fichier dans un répertoire dédié à ton jeu (que tu créer s'il n'existe pas), dans le répertoire par défaut des fichiers relatifs aux différents programmes et spécifique à l'utilisateur actif. On trouve ce répertoire dans : C:\Nom de l'utilisateur\AppData\Roaming.
Tu peux récupérer celui-ci avec la variable d'environnement %APPDATA%.
-Sous Linux : créer ton fichier dans un répertoire dédié à ton jeu (que tu créer s'il n'existe pas), dans le répertoire personnel de l'utilisateur. On trouve ce répertoire dans : home/Nom de l'utilisateur.
Tu peux récupérer celui-ci avec la variable d'environnement $HOME.
Le répertoire de ton jeu devrait préférablement être précédé d'un ".", pour être un «fichier caché».
Pour récupérer une variable d'environnement sous un système quelconque, il faut utiliser la fonction de la librairie standard «getenv( const char * name )» (http://www.cplusplus.com/reference/cstdlib/getenv/
Pour manipuler des fichiers, il faut utiliser les fonctions :
FILE * fopen ( const char * filename, const char * mode );
int fclose ( FILE * stream );
int fputc ( int character, FILE * stream );
int fgetc ( FILE * stream );
ou encore
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
Si tu es vraiment très très débutant, tu peux trouver un bon tutoriel sur le «Site du Zéro» (https://openclassrooms.com/fr/ à propos des bases de base du C : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c et des bases de base de la manipulation de fichier : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16421-lire-et-ecrire-dans-des-fichiers
titocross
Messages postés
2
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
14 mars 2011
14 mars 2011 à 20:00
14 mars 2011 à 20:00
merci de ta réponse je vais essayer dans la semaine quand j'aurais le temps.
En gros si j'ai bien compris il suffit de créer un fichier dans lequel on stockera une sorte de code qui correspond a tel ou tel autre niveau ou autre option. Si ce n'ai pas sa merci de m'éclairer.
j'ai appris avec le tutoriel que tu as envoyer mais je crois que j'ai zaapé le chapitre sur écrire et lire dans des fichiers merci de l'avoir envoyer je ne pensais pas avoir raté de chapitre donc je n'étais même pas retourné sur se site^^.
En gros si j'ai bien compris il suffit de créer un fichier dans lequel on stockera une sorte de code qui correspond a tel ou tel autre niveau ou autre option. Si ce n'ai pas sa merci de m'éclairer.
j'ai appris avec le tutoriel que tu as envoyer mais je crois que j'ai zaapé le chapitre sur écrire et lire dans des fichiers merci de l'avoir envoyer je ne pensais pas avoir raté de chapitre donc je n'étais même pas retourné sur se site^^.
.N
Messages postés
25
Date d'inscription
samedi 12 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011
562
Modifié par .N le 16/03/2011 à 01:43
Modifié par .N le 16/03/2011 à 01:43
Si tu veux un exemple de comment sauvegarder un type unsigned long :
Tu n'a qu'à prendre ces fonctions, et les utiliser pour sauvegarder tes niveaux.
#include <stdlib.h> #include <stdio.h> int ulong_save(const char* filename, unsigned long value) { FILE * f = fopen(filename, "wb"); if (!f) return -1; unsigned char bytes[4] = { (value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, (value >> 0) & 0xFF }; fwrite(bytes, sizeof(char), 4, f); fclose(f); return 0; } int ulong_read(const char* filename, unsigned long *value) { FILE * f = fopen(filename, "rb"); if (!f) return -1; unsigned char bytes[4]; fread(bytes, sizeof(char), 4, f); *value = 0; *value |= bytes[0] << 24; *value |= bytes[1] << 16; *value |= bytes[2] << 8; *value |= bytes[3] << 0; fclose(f); return 0; } int main() { unsigned long a; ulong_save("abc.bin", 1234); ulong_read("abc.bin", &a); printf("a = %ld\n", a); return 0; }
Tu n'a qu'à prendre ces fonctions, et les utiliser pour sauvegarder tes niveaux.