Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ecriture en mode "w" >> effacement préalable du fichier ?!

Sujet résolu
    24 mai 2006 à 12:34:44

    Comment se fait-il que lorsque j'ouvre un fichier en mode "w" pour écrire une ligne dedans, tout le reste soit effacé ?! Je croyais que c'était le mode "w+" qui faisait cela... Voici le code :
    //---OUVERTURE DU FICHIER NIVEAUX.LVL---//

        FILE* fichier = fopen("Niveaux.lvl", "w");
        if (fichier == NULL)
        {
                    return false;
        }

    //---ECRITURE DE LA CARTE DANS LE FICHIER---//

            int     i = 0,
                            j = 0;

            fseek(fichier, (NOMBRE_BLOCS_LARGEUR * NOMBRE_BLOCS_HAUTEUR + 2) * (indice - 1), SEEK_SET);
           
            while (i < NOMBRE_BLOCS_HAUTEUR)
            {
                    while (j < NOMBRE_BLOCS_LARGEUR)
                    {
                            fprintf(fichier, "%d", carte[j][i]);
                            j++;
                    }
                    j = 0;
                    i++;
            }
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      24 mai 2006 à 12:37:01

      Et non !
      w : écriture dans un fichier vide, donc effacement si il existe déja, sinon création.
      w+ : même chose en écriture / lecture.

      Sinon :
      a pour ajouter, a+ pareil en lecture / écriture
      r+ pour lire / écrire depuis le début.
      • Partager sur Facebook
      • Partager sur Twitter
        24 mai 2006 à 12:51:03

        Ca fait 3 jours que ça me posait problème... Merci énormément !
        Je crois donc qu'il faille corriger le cours de M@téo qui ommet ce détail :

        Citation : M@téo

        * "r" : lecture seule. Vous pourrez lire le contenu du fichier, mais pas écrire dedans. Le fichier doit avoir été créé au préalable.
        * "w" : écriture seule. Vous pourrez écrire dans le fichier, mais pas lire son contenu. Si le fichier n'existe pas, il sera créé.
        * "a" : mode d'ajout. Vous écrirez dans le fichier, en partant de la fin du fichier. Vous rajouterez donc du texte à la fin du fichier. Si le fichier n'existe pas, il sera créé.
        * "r+" : lecture et écriture. Vous pourrez lire et écrire dans le fichier. Le fichier doit avoir été créé au préalable.
        * "w+" : lecture et écriture, avec suppression du contenu au préalable. Le fichier est donc d'abord vidé de son contenu, et vous écrivez et lisez ensuite dedans. Si le fichier n'existe pas, il sera créé.
        * "a+" : ajout en lecture / écriture à la fin. Vous écrivez et lisez du texte à partir de la fin du fichier. Si le fichier n'existe pas, il sera créé.

        • Partager sur Facebook
        • Partager sur Twitter

        Ecriture en mode "w" >> effacement préalable du fichier ?!

        × 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