0Pricing
C++ Academy · Leçon

É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

  1. Lire des fichiers avec ifstream
  2. Écrire des fichiers avec ofstream
  3. E/S de fichiers binaires
  4. Gestion des erreurs et état
← Retour à C++ Academy