Comment ajouter du texte à un fichier en C++
-
Utilisez les méthodes
std::ofstream
etopen()
pour ajouter du texte à un fichier -
Utilisez
std::fstream
etopen()
Méthode pour ajouter du texte à un fichier -
Utilisez la méthode
write()
avecstd::fstream
etopen()
pour ajouter du texte à un fichier
Cet article présente plusieurs méthodes C++ pour ajouter du texte à un fichier.
Utilisez les méthodes std::ofstream
et open()
pour ajouter du texte à un fichier
Dans un premier temps, nous devrions créer un objet ofstream
et ensuite appeler sa fonction membre open
. Cette méthode prend un nom de fichier comme objet string
pour le premier argument. Comme deuxième argument, nous pouvons passer en mode ouvert en spécifiant des valeurs constantes prédéfinies, comme indiqué dans le tableau suivant:
Constante | Explication |
---|---|
std::ios_base::app |
chercher la fin du flux avant chaque écriture |
std::ios_base::binary |
ouvert en mode binaire |
std::ios_base::in |
ouvert à la lecture |
std::ios_base::out |
ouvert à l’écriture |
std::ios_base::trunc |
jeter le contenu du flux lors de l’ouverture |
std::ios_base::ate |
chercher à atteindre la fin du flux immédiatement après l’ouverture |
Notez que l’exemple de code suivant crée un fichier nommé tmp.txt
dans le répertoire de travail actuel. Vous pouvez passer un chemin complet d’un fichier à créer ou à ajouter dans un emplacement différent.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::ofstream;
using std::string;
int main() {
string filename("tmp.txt");
ofstream file_out;
file_out.open(filename, std::ios_base::app);
file_out << "Some random text to append." << endl;
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Production:
Done !
Utilisez std::fstream
et open()
Méthode pour ajouter du texte à un fichier
Nous pouvons également mettre en œuvre l’exemple précédent en utilisant le fstream
qui offre une option permettant d’ouvrir un fichier donné pour le lire et l’écrire/ajouter. Cette méthode est un moyen universel de manipuler les flux de fichiers. Notez que nous avons également ajouté une validation si l’instruction avec l’appel is_open
, qui vérifie si le flux est associé au fichier spécifié.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::fstream;
using std::string;
int main() {
string filename("tmp.txt");
fstream file;
file.open(filename, std::ios_base::app | std::ios_base::in);
if (file.is_open()) file << "Some random text to append." << endl;
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Utilisez la méthode write()
avec std::fstream
et open()
pour ajouter du texte à un fichier
Une autre version pour résoudre ce problème consiste à appeler la fonction membre write
explicitement à partir de l’objet fstream
plutôt que d’utiliser l’opérateur <<
comme nous l’avons fait dans les exemples précédents. Cette méthode devrait être plus rapide pour la plupart des scénarios, mais il faut toujours profiler votre code et comparer les temps si vous avez des exigences strictes en matière de performances.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::fstream;
using std::string;
int main() {
string text("Some huge text to be appended");
string filename("tmp.txt");
fstream file;
file.open(filename, std::ios_base::app);
if (file.is_open()) file.write(text.data(), text.size());
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook