Lire des fichiers avec ifstream
Lire du texte et des données
Lire des fichiers avec ifstream est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 ifstream ?
std::ifstream (flux de fichier d'entrée) lit des données à partir de fichiers. Il fonctionne comme std::cin, mais sa source est un fichier sur le disque.
- Défini dans
<fstream>. - Ouvre un fichier à partir de son nom dans son constructeur.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("demo.txt") << "hello\n";
std::ifstream in("demo.txt");
std::string word;
in >> word;
std::cout << word << '\n';
return 0;
}Ouvrir un fichier
Construisez un ifstream avec un nom de fichier, puis vérifiez avec is_open() si le fichier a été trouvé.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("data.txt") << "42\n";
std::ifstream in("data.txt");
std::cout << (in.is_open() ? "opened" : "failed") << '\n';
return 0;
}Lire des mots
L'opérateur >> lit des jetons séparés par des espaces, comme avec cin.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("words.txt") << "alpha beta gamma\n";
std::ifstream in("words.txt");
std::string w;
while (in >> w) std::cout << w << '\n';
return 0;
}Lire des nombres
Vous pouvez extraire directement des types numériques. L'extraction depuis le flux analyse le texte pour le convertir vers le type approprié.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("nums.txt") << "10 20 30\n";
std::ifstream in("nums.txt");
int sum = 0, x;
while (in >> x) sum += x;
std::cout << "sum = " << sum << '\n';
return 0;
}Lire des lignes avec getline
Utilisez std::getline() pour lire une ligne entière, espaces compris, jusqu'au saut de ligne.
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ofstream("lines.txt") << "first line\nsecond line\n";
std::ifstream in("lines.txt");
std::string line;
while (std::getline(in, line)) std::cout << "[" << line << "]\n";
return 0;
}Lire le fichier entier
Pour charger entièrement un fichier, lisez-le dans une chaîne à l'aide d'itérateurs de tampon de flux.
#include <iostream>
#include <fstream>
#include <sstream>
int main() {
std::ofstream("all.txt") << "line1\nline2\n";
std::ifstream in("all.txt");
std::stringstream ss;
ss << in.rdbuf();
std::cout << ss.str();
return 0;
}Détecter la fin du fichier
Une boucle de lecture se termine lorsque l'extraction échoue, généralement à la fin du fichier. Tester le flux dans une condition permet de le vérifier.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("eof.txt") << "1 2 3\n";
std::ifstream in("eof.txt");
int x, count = 0;
while (in >> x) ++count;
std::cout << "read " << count << " numbers\n";
std::cout << "eof: " << std::boolalpha << in.eof() << '\n';
return 0;
}Gérer un fichier manquant
Si le fichier n'existe pas, le flux est dans un état d'échec et is_open() vaut false. Vérifiez toujours cet état avant de lire.
#include <iostream>
#include <fstream>
int main() {
std::ifstream in("does_not_exist_12345.txt");
if (!in) {
std::cout << "could not open file\n";
}
return 0;
}Analyser des lignes structurées
Combinez getline avec istringstream pour extraire les champs de chaque ligne.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main() {
std::ofstream("people.txt") << "Alice 30\nBob 25\n";
std::ifstream in("people.txt");
std::string line;
while (std::getline(in, line)) {
std::istringstream ss(line);
std::string name; int age;
ss >> name >> age;
std::cout << name << " is " << age << '\n';
}
return 0;
}open et close explicites
Vous pouvez ouvrir ultérieurement un flux construit par défaut avec open() et le libérer avec close().
#include <iostream>
#include <fstream>
int main() {
std::ofstream("oc.txt") << "data\n";
std::ifstream in;
in.open("oc.txt");
std::string s; in >> s;
in.close();
std::cout << s << '\n';
return 0;
}RAII ferme le fichier pour vous
Lorsqu'un ifstream sort de sa portée, son destructeur ferme automatiquement le fichier. L'appel manuel à close() est rarement nécessaire.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("raii.txt") << "x\n";
{
std::ifstream in("raii.txt");
std::string s; in >> s;
std::cout << s << '\n';
} // file closed here automatically
std::cout << "closed\n";
return 0;
}Vérification rapide
Évaluez votre compréhension de la lecture des lignes.
Récapitulatif
Vous avez appris que std::ifstream :
- lit des fichiers avec
>>etstd::getline - doit être vérifié avec
is_open()ou en testant le flux - ferme automatiquement le fichier grâce à RAII lorsqu'il sort de sa portée
Ensuite, vous écrirez des fichiers avec ofstream.
Questions Fréquemment Posées
La leçon « Lire des fichiers avec ifstream » est-elle gratuite ?
Oui — le texte complet de « Lire des fichiers avec ifstream » 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 « Lire des fichiers avec ifstream » ?
Lire du texte et des données 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 1 sur 4.
Combien de temps prend la leçon « Lire des fichiers avec ifstream » ?
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