web-dev-qa-db-fra.com

Ecrire une chaîne à la fin d'un fichier (C ++)

J'ai un programme déjà formé qui a une chaîne que je veux diffuser à la fin d'un fichier texte existant. Tout ce que j'ai, c'est ceci: (C++)

 void main()
{
   std::string str = "I am here";
   fileOUT << str;
}

Je me rends compte qu'il y a beaucoup à ajouter à cela et je m'excuse s'il semble que je demande aux gens de coder pour moi, mais je suis complètement perdu parce que je n'ai jamais fait ce type de programmation auparavant.

J'ai essayé différentes méthodes que j'ai rencontrées sur Internet, mais c'est la chose la plus proche qui fonctionne et qui est quelque peu familière.

17
ked

Ouvrez votre fichier en utilisant std::ios::app

 #include <fstream>

 std::ofstream out;

 // std::ios::app is the open mode "append" meaning
 // new data will be written to the end of the file.
 out.open("myfile.txt", std::ios::app);

 std::string str = "I am here.";
 out << str;
32
Chad

Pour ajouter du contenu à la fin des fichiers, ouvrez simplement un fichier avec ofstream (qui signifie out file stream) en mode app (qui signifie ajouter).

#include <fstream>
using namespace std;

int main() {
    ofstream fileOUT("filename.txt", ios::app); // open filename.txt in append mode

    fileOUT << "some stuff" << endl; // append "some stuff" to the end of the file

    fileOUT.close(); // close the file
    return 0;
}
6
Seth Carnegie

Ouvrez votre flux en tant qu'addition, le nouveau texte écrit dessus sera écrit à la fin du fichier.

2
Blindy

J'espère que ce n'est pas tout votre code car si c'est le cas, il y a beaucoup de problèmes avec lui.

La façon dont vous écririez dans un fichier ressemble à ceci:

#include <fstream>
#include <string>

// main is never void
int main()
{
    std::string message = "Hello world!";

    // std::ios::out gives us an output filestream
    // and std::ios::app appends to the file.
    std::fstream file("myfile.txt", std::ios::out | std::ios::app);
    file << message << std::endl;
    file.close();

    return 0;
}
2
Mike Bailey