Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Ecriture dans un fichier :s

Problème avec un fprintf ...

Sujet résolu
    18 avril 2006 à 2:02:28

    Bonjour/soir les Zér0s :)

    Alors voilà, je suis en train de faire un RPG (éhéh super original) ou plus exactement, l'Editeur de map.
    Mais j'ai un problème (oh !) ;
    Le problème est que j'écris dans un fichier les maps, une par ligne (ça rappelle l'éditeur du TP ^^ )
    Et voilà, y a un fprintf qui marche pas, et je vois pas pourquoi ...

    Le code :
    int sauvegarderNiveau(int niveau[][NB_BLOCS_HAUTEUR], int map)
    {
        FILE* fichier = NULL;
        FILE* fichier2 = NULL;
        int i = 0, j = 0, nombre = 0;
        long ligne = map * NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR;
        char chaineAc[NB_DS_LIGNE] = "";
        char chaine1[NB_DS_LIGNE] = "";

        fichier = fopen("niveaux.lvl", "r");
        fichier2 = fopen("niveaux_temp.lvl", "w");
        if ((fichier != NULL) & (fichier2 != NULL))
        {
            while (fgets(chaine1, NB_DS_LIGNE, fichier) != NULL)
            {
                if (map != nombre)
                {

                    fprintf(fichier2, "%d", chaine1); // =======> C'est lui qui Bug !!!!!!! <========
                }
                else
                {
                    for (i = 0 ; i < NB_BLOCS_HAUTEUR ; i++)
                    {
                        for (j = 0 ; j < NB_BLOCS_LARGEUR ; j++)
                        {
                            fprintf(fichier2, "%d", niveau[j][i]);
                        }
                    }
                    fprintf(fichier2, "\n");
                }
                nombre++ ;
            }

        fclose(fichier2);
        fclose(fichier);

        }
        else
        {
            return 0;
        }

        return 1;
    }


    (C'est celui du TP mais modifié)

    Merci d'avance !!

    Edit : En fait il marche mais il écrit 3X 2292048 ...
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 avril 2006 à 2:10:38

      c'est uen chaine ?
      essaye

      fprintf(fichier2, "%s", chaine1);


      comme une chaine est un pointeur sur la premiere lettre de ta chaine. je pense que le chiffre bizarre est l'adersse mémoire stockée dans le pointeur
      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2006 à 2:16:00

        lol, j'avais même pas pensé à ça :lol:
        bon bah merci, j'ai passé 15min à chercher, et toi tu trouve en ... 30s !!!
        alala, on va dire que c'est la fatigue ^^

        Merci encore !
        Bye
        • Partager sur Facebook
        • Partager sur Twitter

        [C] Ecriture dans un fichier :s

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown