Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment ecrire dans un fichier texte

Sujet résolu
    22 décembre 2005 à 11:07:57

    bonjour

    je souhaite créer un programme qui enregister une variable dans un fichier texte pour recuperer cette variable si on reouvre le programme

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      22 décembre 2005 à 19:28:46

      Si tu code en C++, prefere utiliser les objets ofstream et ifstream qui ouvre respectivement en ecriture et en lecture.
      Ex d'utilisation :

      // Fichier header necessaire pour respectivement utiliser les flux E/S standard,
      // lire/ecrite dans un fichier et manipuler les string
      #include <iostream>
      #include <fstream>
      #include <string>

      // On dit au compilateur qu'on utilise l'espace de nom standard (std)
      using namespace std;

      int main() {
              int taVariable = 5;
              // le fichier "fichier.txt" doit se trouver dans le repertoire de l'executable
              // et il peut etre n'importe quoi
              // Je l'ouvre ici en ecriture pour y ecrire une variable :
              ofstream file_e("fichier.txt");

              // On ecris dans le fichier de la meme facon que l'on utilise cout
              file_e << "taVariable : " << taVariable << "\n";

              // On oublie pas de le fermer
              file_e.close();

              // Je l'ouvre ici en lecture pour recuperer les données qu'il contient
              ifstream file_l("fichier.txt");
             
              // Tu as 2 methode pour lire un fichier :
              // Soit ligne par ligne, soit caractère par caractère, ce que je fais ici :
              char ch;
              string txtInFile = "";
              while(file_l.get(ch))
                      txtInFile += ch;

              // A la fin de la boucle, txtInFile contient l'ensemble du fichier ;
              // On l'affiche ici a l'ecran mais tu peux enlever cette ligne
              cout << txtInFile << "\n";

              // Va contenir le nom de la variable contenu dans le fichier
              string nomVariable = "";
              // Va contenir sa valeur
              string valueVariable = "";
              // Va contenir sa valeur convertie en int
              int valueTaVariable = 0;
              // A partir d'ici, on a le contenu du fichier entier, voici comment couper
              // un texte avec ses espaces
              // txtInFile.c_str() renvoie un char* const, que l'on cast en non-const
              char *temp = const_cast<char*>(txtInFile.c_str());
              char *pch;
              // On commence une boucle qui va couper chaque mot avec chaque espace
              // jusqu'a ce qu'il n'y arrive plus (plus d'espace)
              pch = strtok(temp," ");
              while(pch != NULL) {
                      // Si nomVariable ne correspond pas au nom de ta variable (ecris plus haut)
                      if(strcmp(nomVariable.c_str(),"taVariable"))
                              // On le reassigne
                              nomVariable = pch;
                      // Sinon on assigne valueVariable a pch, qui devrait etre sa valeur
                      else {
                              // Si valueVariable egal 0
                              if(!valueTaVariable) {
                                      // On reassigne valueVariable et on le reconvertis
                                      valueVariable = pch;
                                      valueTaVariable = strtol(valueVariable.c_str(),NULL,10);
                              }
                              // Sinon on a bien recuperer la valeur de ta variable enregistrer plus haut,
                              // Donc on quitte la boucle avec un break;
                              else
                                      break;
                      }
                      // On continue de couper le texte selon les espaces
                      pch = strtok(NULL," ");
              }

              // On oublie pas de fermer le fichier ^^
              file_l.close();

              // On affiche les 2 variables trouvée a l'ecran :
              cout << nomVariable << " : " << valueTaVariable << "\n";

              return 0;
      }

      Voila, le code commenté un maximum (pour couper un texte en plusieurs mot selon les espaces, sa marche aussi en C).

      Meme si tu ne code pas en C++, je pense que sa serat utile pour d'autre :)
      • Partager sur Facebook
      • Partager sur Twitter
        23 décembre 2005 à 18:59:11

        bonjour

        j'ai encore un petit probleme

        je n'arrive pas a lire le nombre que j'ai enregistré dans mon fichier

        j'ai essayé avec le tuto que Chahine a mis en lien mais j'arrive seulement a ecrire dans le fichier mais pas la lire

        quelqu'un pourait me donner un code

        tif-tof => j'ai essayé avec le tien aussi mais je n'arrive pas non plus a lire

        merci
        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2005 à 19:03:28

          Bizzare o_O pourtant le mien marche chez moi. Tu pourrais donner ton code pour voir comment tu fais ?
          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2005 à 19:45:51

            désolé tif-tof j'aivais oublié le system("PAUSE");

            merci
            • Partager sur Facebook
            • Partager sur Twitter

            Comment ecrire dans un fichier texte

            × 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