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 :
ofstreamest une classe pour écrire dans des fichiers.ofsest un objet de la classeofstream.- 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,outspécifie que le fichier est ouvert pour l'écriture, ettruncspé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::coutest 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 variableline.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::cerrest 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::ifstreamest une classe pour lire des fichiers.ifsest un objet de la classeifstream.- 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::coutest 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 variableline.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.



