Écrire des fichiers avec ofstream
Écrire des fichiers de sortie
Écrire des fichiers avec ofstream est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que ofstream ?
std::ofstream (flux de fichier de sortie) écrit des données dans des fichiers. Il fonctionne comme std::cout, mais sa destination est un fichier.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("hello.txt");
out << "Hello, file!\n";
std::cout << "wrote file\n";
return 0;
}Écrire du texte
Utilisez l'opérateur << pour écrire des chaînes et des nombres, exactement comme lors d'un affichage dans la console.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("report.txt");
out << "Score: " << 95 << '\n';
out << "Grade: A\n";
std::cout << "done\n";
return 0;
}Troncature par défaut
Ouvrir un fichier existant avec ofstream efface son contenu précédent. Chaque exécution repart de zéro.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("t.txt") << "old content\n";
std::ofstream out("t.txt");
out << "new content\n";
std::ifstream in("t.txt");
std::string line; std::getline(in, line);
std::cout << line << '\n';
return 0;
}Ajouter avec le mode app
Transmettez std::ios::app pour conserver le contenu existant et ajouter de nouvelles données à la fin.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("log.txt") << "line1\n";
std::ofstream out("log.txt", std::ios::app);
out << "line2\n";
out.close();
std::ifstream in("log.txt");
std::string l; int n = 0;
while (std::getline(in, l)) ++n;
std::cout << n << " lines\n";
return 0;
}Vérifier que l'écriture a réussi
Vérifiez le flux après son ouverture. S'il est dans un état d'échec, l'écriture échouera silencieusement.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("ok.txt");
if (!out) {
std::cout << "failed to open\n";
return 1;
}
out << "safe write\n";
std::cout << "write ok\n";
return 0;
}Écrire des nombres et formater
Les manipulateurs d'E/S tels que std::fixed et std::setprecision s'appliquent également aux flux de fichiers.
#include <iostream>
#include <fstream>
#include <iomanip>
int main() {
std::ofstream out("pi.txt");
out << std::fixed << std::setprecision(3) << 3.14159 << '\n';
out.close();
std::ifstream in("pi.txt");
std::string s; in >> s;
std::cout << s << '\n';
return 0;
}Écrire une boucle de données
Écrivez de nombreuses lignes en utilisant une boucle. Chaque itération envoie un enregistrement dans le fichier.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("squares.txt");
for (int i = 1; i <= 5; ++i) out << i << ' ' << i * i << '\n';
out.close();
std::cout << "wrote 5 rows\n";
return 0;
}Vider le tampon
La sortie est mise en tampon. std::flush ou std::endl force immédiatement l'écriture du tampon sur le disque ; la fermeture le vide également.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("flush.txt");
out << "important" << std::flush;
std::cout << "flushed to disk\n";
return 0;
}endl ou saut de ligne
'\n' ajoute simplement un saut de ligne. std::endl ajoute un saut de ligne et vide le tampon, ce qui est plus lent dans les boucles serrées.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("nl.txt");
out << "fast\n"; // newline only
out << "slow" << std::endl; // newline + flush
std::cout << "both written\n";
return 0;
}Écrire puis relire
Un schéma courant consiste à écrire les données, à fermer le fichier, puis à le rouvrir pour les relire.
#include <iostream>
#include <fstream>
int main() {
{
std::ofstream out("rt.txt");
out << 7 << ' ' << 8 << '\n';
}
std::ifstream in("rt.txt");
int a, b; in >> a >> b;
std::cout << a + b << '\n';
return 0;
}Choisir les modes d'ouverture
Combinez les indicateurs avec |. Modes courants : ios::out (par défaut), ios::app (ajout), ios::trunc (effacement).
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("modes.txt", std::ios::out | std::ios::trunc);
out << "fresh\n";
std::cout << "opened with explicit modes\n";
return 0;
}Vérification rapide
Évaluez votre compréhension des modes de ofstream.
Récapitulatif
Vous avez appris que std::ofstream :
- écrit avec
<<, en tronquant par défaut - ajoute des données avec
std::ios::app - met la sortie en tampon ;
std::flush/std::endl/la fermeture l'envoient sur le disque
Ensuite, vous manipulerez des octets bruts avec les entrées-sorties de fichiers binaires.
Questions Fréquemment Posées
La leçon « Écrire des fichiers avec ofstream » est-elle gratuite ?
Oui — le texte complet de « Écrire des fichiers avec ofstream » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Écrire des fichiers avec ofstream » ?
Écrire des fichiers de sortie Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Écrire des fichiers avec ofstream » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Lire des fichiers avec ifstream
- Écrire des fichiers avec ofstream
- E/S de fichiers binaires
- Gestion des erreurs et état