Fichiers en C++

Introduction aux fichiers en C++

Les ordinateurs s’appuient sur des systèmes de fichiers pour organiser et gérer les données. Dans ce contexte, chaque fichier agit comme un conteneur autonome pour une information connexe.

Pour manipuler des fichiers en C++, on utilise la bibliothèque fstream, qui signifie "flux de fichiers". Pour l'intégrer dans un programme C++, il faut inclure les fichiers d'en-tête suivants :

#include 
#include 

Les classes de la bibliothèque fstream

La bibliothèque fstream comprend trois classes principales permettant de créer, lire ou écrire des fichiers :

  • ofstream ("flux de sortie de fichier") : Permet de créer des fichiers et d’y écrire.
  • ifstream ("flux d’entrée de fichier") : Permet de lire à partir de fichiers.
  • fstream : Une combinaison des deux précédentes, permettant de créer, lire et écrire des fichiers.

Créer et écrire dans un fichier

Pour créer un fichier, on peut utiliser soit la classe ofstream, soit fstream, en précisant le nom du fichier souhaité. Pour y écrire, il suffit d'utiliser l'opérateur d'insertion (<<). Voici un exemple :

#include 
#include 

int main() {
    // Créer et ouvrir un fichier texte
    std::ofstream MonFichier("journal.txt");

    // Écrire dans le fichier
    MonFichier << "Aujourd'hui est le plus grand
";
    MonFichier << "Jour que j'ai jamais connu";

    // Fermer le fichier
    MonFichier.close();
}

Après avoir exécuté ce code, un nouveau fichier texte nommé journal.txt sera créé dans le même dossier, contenant les lignes suivantes :

Aujourd'hui est le plus grand
Jour que j'ai jamais connu

Lire un fichier

Pour lire un fichier, on peut aussi utiliser les classes ifstream ou fstream, en indiquant le nom du fichier. L’utilisation d'une boucle while combinée à la fonction getline() permet de lire le fichier ligne par ligne et d'afficher son contenu :

#include 
#include 

int main() {
    // Créer une chaîne de caractères pour stocker le texte du fichier
    std::string MonTexte;

    // Lire à partir du fichier texte
    std::ifstream MonFichierLecture("journal.txt");

    // Afficher le contenu ligne par ligne
    while (getline(MonFichierLecture, MonTexte)) {
        std::cout << MonTexte << "\n";
    }

    // Fermer le fichier
    MonFichierLecture.close();
}

La sortie consistera en :

Aujourd'hui est le plus grand
Jour que j'ai jamais connu