0Pricing
C++ Academy · Leçon

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 >> et std::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

  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