Lire et écrire un fichier ligne par ligne en C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à lire et à écrire un fichier ligne par ligne à l'aide du langage de programmation C++. Vous allez créer un fichier, y écrire et ensuite lire son contenu ligne par ligne.

Création et ouverture d'un fichier

Créez un fichier C++ nommé file_io.cpp dans le répertoire ~/project. Dans cette étape, vous allez créer et ouvrir un fichier nommé example.txt.

#include <fstream>

int main() {
    // Creating and opening a file
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    ofs.close();
    return 0;
}

Explication :

  • ofstream est une classe pour écrire dans des fichiers.
  • ofs est un objet de la classe ofstream.
  • La méthode open() est utilisée pour créer et ouvrir un fichier.
  • Dans la méthode open(), le premier argument est le nom du fichier à créer et le second argument spécifie le mode dans lequel le fichier doit être ouvert. Ici, out spécifie que le fichier est ouvert pour l'écriture, et trunc spécifie que le fichier doit être tronqué s'il existe déjà.

Écrire dans un fichier

Dans cette étape, vous allez écrire dans le fichier example.txt.

#include <fstream>
#include <iostream>
#include <string>

int main() {
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    if (ofs.is_open()) {
        std::cout << "Entrez le texte à écrire dans le fichier (Entrez une ligne vide pour sortir) :" << std::endl;
        std::string line;
        do {
            std::getline(std::cin, line);
            if (line.length()) {
                ofs << line << std::endl;
            }
        } while (line.length());
        ofs.close();
    } else {
        std::cerr << "Erreur lors de l'ouverture du fichier" << std::endl;
    }
    return 0;
}

Explication :

  • std::cout est utilisé pour afficher un message dans la console demandant à l'utilisateur d'entrer le texte à écrire dans le fichier.
  • std::getline() est utilisé pour lire l'entrée de l'utilisateur ligne par ligne et la stocker dans la variable line.
  • if (line.length()) est utilisé pour vérifier si l'utilisateur a entré du texte ou non. Si l'utilisateur n'a pas entré de texte, alors la boucle se terminera.
  • ofs << line << std::endl; est utilisé pour écrire l'entrée de l'utilisateur dans le fichier suivie d'un caractère de nouvelle ligne.
  • std::cerr est utilisé pour afficher un message d'erreur dans la console si le fichier ne peut pas être ouvert.

Pour exécuter ce programme, accédez au répertoire ~/project et exécutez la commande suivante :

g++ file_io.cpp -o file_io && ./file_io

Ce programme demandera à l'utilisateur d'entrer le texte à écrire dans le fichier, puis écrira l'entrée de l'utilisateur dans le fichier.

Lire à partir d'un fichier

Dans cette étape, vous allez lire le contenu du fichier example.txt.

#include <fstream>
#include <iostream>
#include <string>

int main() {
    std::ifstream ifs;
    ifs.open("example.txt");
    if (ifs.is_open()) {
        std::cout << "Contenu du fichier :" << std::endl;
        std::string line;
        while (std::getline(ifs, line)) {
            std::cout << line << std::endl;
        }
        ifs.close();
    } else {
        std::cerr << "Erreur lors de l'ouverture du fichier" << std::endl;
    }
    return 0;
}

Explication :

  • std::ifstream est une classe pour lire des fichiers.
  • ifs est un objet de la classe ifstream.
  • La méthode open() est utilisée pour ouvrir un fichier existant.
  • Dans la méthode open(), l'argument est le nom du fichier à ouvrir.
  • std::cout est utilisé pour afficher un message dans la console pour indiquer que le contenu du fichier est affiché.
  • std::getline() est utilisé pour lire le contenu du fichier ligne par ligne et le stocker dans la variable line.
  • std::cout << line << std::endl; est utilisé pour afficher le contenu du fichier ligne par ligne dans la console.

Pour exécuter ce programme, accédez au répertoire ~/project et exécutez la commande suivante :

g++ file_io.cpp -o file_io && ./file_io

Ce programme affichera le contenu du fichier example.txt dans la console.

Résumé

Dans ce laboratoire, vous avez appris à créer, écrire dans et lire à partir d'un fichier à l'aide du langage de programmation C++. Vous avez appris à utiliser les classes ofstream et ifstream pour écrire dans et lire à partir de fichiers respectivement. Vous avez également appris à utiliser la méthode open() pour créer et ouvrir un fichier, et la méthode getline() pour lire le contenu d'un fichier ligne par ligne.