Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ecrire dans un fichier [ Divers / Général ] (pitidragon)

lundi 5 mai 2008 à 19:27:38 | Ecrire dans un fichier

pitidragon

Bonjour !

Je viens vous demandez de l'aide pour un programme en C. J'ai réalisé un démineur, jouable sur console, et je dois rajouter une fonction mais je bloque.

Je dois écrire dans un fichier les meilleurs scores. J'ai 4 niveaux de jeux possible, et je chronomètre chaque partie. Il me faut donc écrire cette valeur dans un fichier, en indiquand le meilleur temps pour chaque niveaux.

Un truc qui ressemblerai à ça :

       Démineur
       Meilleurs scores

Facile : ... secondes
Moyen : ... secondes
Difficile : ... secondes
Personnalisé : ... secondes



J'ai commencé à écrire la fonction qui me permet de faire ça :

void meilleur_score(int choix, double score)
{
    FILE *f;
   
    f=fopen("Score","wt");
    if(f==NULL)
    {
        perror("Erreur d'ouverture du fichier ");
    }
    fprintf(f,"    Démineur\n    Meilleurs Scores\n");
    fprintf(f,"\n");

    if(choix==1)
    {
        fprintf(f,"Facile : %lf secondes",score);
    }
    if(choix==2)
    {
        fprintf(f,"Moyen : %lf secondes",score);
    }
    if(choix==3)
    {
        fprintf(f,"Difficile : %lf secondes",score);
    }
    if(choix==4)
    {
        fprintf(f,"Personnalisé : %lf secondes",score);
    }
}

Choix me permet de savoir le niveau de difficulté, et score contient le temps de la partie.

Je ne sais pas comment faire pour toujours afficher le modèle écrit dessus, et simplement changer le score lorsque celui-ci est un meilleur score. Je ne sais pas si je me suis bien fait comprendre lol.

Merci de votre aide par avance :)

lundi 5 mai 2008 à 20:13:49 | Re : Ecrire dans un fichier

Cyr62110

Le mieux est de stocker tes temps seul dans un fichier à part et faire un fichier texte avec le texte destiné à être lu par l'utilisateur.
Sinon tu peut faire une recherche de caractéres pour retrouver tes temps et reécrire entierement en remettant tes temps.
La premiére methode est je pense la plus rapide.
Bye

lundi 5 mai 2008 à 20:30:21 | Re : Ecrire dans un fichier

pitidragon

Euh j'ai pas très bien compris. En fait dans un fichier j'écris le temps (juste celui de la dernière partie ou tous ?) Et dans un autre fichier j'écris le texte pour le joueur, auquel je rajoute le temps dedans ?

Je vois pas trop comment faire en fait pour savoir si le temps est bien un meilleur score, et comment l'écrire à la bonne place dans le fichier à lire.

Je te remercie de ton aide en tout cas

lundi 5 mai 2008 à 22:05:21 | Re : Ecrire dans un fichier

p4l4din

je pense que si tu sépares en deux fonctions ça vas être plus simple ... je trouve que les idées sont là mais elles sont un peu mélangées ...
à ta place je mettrai

une fonction qui au lancement du programme charge les 4 meilleurs scores du fichier.txt
/* si il existe pas cette fontion même le crée et le rempli par quatre 0 ... */  dans un tableau de 4 cases

puis apres ta fontion meilleur_scores qui dépendant du choix va comparer le score de la partie à une valeur du tableau des scores si c'est un meilleur score elle l'écrit dans fichier.txt ...
je crois que comme ca c'est plus simple
@+

mardi 6 mai 2008 à 09:02:43 | Re : Ecrire dans un fichier

Cyr62110

Bon je vais essayer d'être plus clair.
Tu créer un fichier qui contient tes 4 meileurs score sous forme binaire donc sans le formatage de fprintf. Une fois que tu lance ton logiciel tu charge ces quatres valeur et aprés tu n'as plus qu'as modifier ces valeurs si il y'as un nouveau meilleur score. Et donc aprés dans un autre fichier.txt que tu créer et qui est lisible par l'utilisateur, tu met tes meilleurs score avec le formatage de ta fonction.
Ce qui t'évitera de faire de la recherche de caractére dans ton fichier texte.

/*Exemple*/
void CreateMeilleurScoreFile()
{
     FILE*fp;
     fp = fopen("score.score","wb");
     fwrite(0,sizeof(double),4,fp);
     fclose(fp);
     return;
}
double* RecupMeilleurScore()
{
      double*score;
      FILE*fp;
      score = (double)malloc(4*sizeof(double));
      fp = fopen("score.score","rb");
      fread(score,sizeof(double),4,fp);
      fclose(fp);
      return score;
}
void ChangeMeilleurScore(double score,int difficulte)
{
      FILE*fp;
      fp = fopen("score.score","wb");
      fseek(fp,difficulte,SEEK_CUR);
      fwrite(score,sizeof(double),1,fp);
      return;
}

Je ne l'ai ai pas testé donc il peut y avoir des erreurs.
Bye



Cette discussion est classé dans : fichier, choix, score, fprintf, if


Répondre à ce message

Sujets en rapport avec ce message

enreg et lecture dans fichier [ par musco ] salut je desirai garder des infos dans un fichier (ATTENTION JE SUIS EN C ET NE VEUT PAS DE C++)alors en faite je fais saisir par l'utilisateur le nbr pb ecriture ds fichier [ par YOHANONEILL ] bonjour, voila j'ai un programme ou j'écrit dans un fichier des lignes, mais parfois la ligne que j'insert dans le fichier s'écrit 20000 ou 60000 foi fprintf overload ??? [ par ekinox17 ] bonjour, je sauvagarde un historique de mesure toutes les 10 seconde via fprintf donc l'ecriture dans le fichier se fait en mode "a" et donc elle est demande explication sur fichier structuré [ par bellionl ] Voila j'essaye de faire des fichiers strucurés.le probleme etant que les int de la structures s'ecrive bien sur le fichier mais pas les ansistring.ex Choix d'un répertoire [ par albertoC ] Bonjour,J'utilise GetOpenFileName pour récupérer le nom d'un fichier (merci, brunews).Par ailleurs, j'aurais besoin de sélectionner seulement un réper Choix de l'emplacement ou enregistrer un fichier ini [ par Corn51 ] Bonjour,Comment fait ton pour indiquer ou enregistrer un fichier ini ? Parce que en mettant comme cela :WritePrivateProfileString("COM","Baudrate", m_ pb encoding Base64 [ par mailer ] J'ai récupéré cette méthode pour encoder un fichier en base64 mais elle plante au niveau du 1er fprintf. Quelqu'un a t-il une solution??? Merci #defi information fprintf [ par angelfire0808 ] Quand j'ecrie dans mon fichier avec la commande:  fprintf(fichier, "%s;%d", sms_a_envoyer,num_send);&nb [win32] combobox [ par mogwai93 ] Bonjour j'ai une combobox avec plusieurs choix possibles en fonction des choix, certains items s'affichent ou non l'item sélectionné est enregistré problem avec scanf et fwrite dans boucle while [ par kamal93270 ] bonjour voici mon programme : #include #include int main() { int choix; FILE* fichier; while (1) { scanf("%d",


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.