Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ecriture dans un fichier

Ecrire après l'écriture précédente sans réinitialisation

Sujet résolu
    4 juin 2023 à 0:20:39

    Bonsoir

    Je m'exerce au C++ en suivant le cours open classrooms dédié. Apparemment il existe une instruction qui permet d'écrire à la fin d'un fichier texte sans écraser le précédent et ce qu'il contient. Le problème est qu'il n y a aucun exemple dans le cours qui permet de voir quelle est la méthode d'utiliser cette instruction. Je l'ai mis en commentaire dans le code suivant : 

    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
        ofstream monFlux("C:/Users/User/Documents/programme code blocks/programme en C++/modification_et_lecture_de_fichiers/scores.txt");
        //ofstream monFlux(nomFichier.c_str(), ios::app);//cette instruction ne marche pas
        if(monFlux)  //On teste si tout est OK
        {
            monFlux << "Bonjour, je suis une phrase écrite dans un fichier." << endl;
            monFlux << 42.1337 << endl;
            int age(36);
            monFlux << "J'ai " << age << " ans." << endl;
        }
        else
        {
            cout << "ERREUR: Impossible d'ouvrir le fichier." << endl;
        }
        return 0;
    }

    Quelqu'un pourrait-il m'expliquer la méthode d'utilisation de cette instruction ?

    Cordialement

    -
    Edité par 1Stark 4 juin 2023 à 0:21:54

    • Partager sur Facebook
    • Partager sur Twitter
      4 juin 2023 à 0:33:42

      1Stark a écrit:

      Je l'ai mis en commentaire dans le code suivant...

      Et bien tu la laisses en commentaire et tu ajoutes le  ios::app à la ligne précédente. (nomFichier n'existe pas)

      -
      Edité par rouIoude 4 juin 2023 à 9:24:15

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        4 juin 2023 à 10:44:00

        Pour l'apprentissage, je préfère décomposer les méthodes de ifstream. C'est possible de fusionner quelques lignes, mais en gros:

        ...
        
        ofstream monfichier; //initialisation (ofstream donc pour de l'écriture)
        monfichier.open("destination.txt", std::ios::app); //la deuxième partie concerne les modes d'exécution de l'ouverture de ton fichier. Voir doc pour tous les modes d'exécution (il y en a pas beaucoup)
        if (monfichier.isOpen()) //test de l'ouverture du fichier
        {
            //code
        }
        else {
            //gestion des erreurs
        }
        monfichier.close(); //toujours fermer le fichier après utilisation

        Les 6 modes documentés dans CPP reference : https://cplusplus.com/reference/fstream/ofstream/ofstream/

        -
        Edité par Hibiscae 4 juin 2023 à 10:44:30

        • Partager sur Facebook
        • Partager sur Twitter

        Ecriture dans un 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