0Pricing
C++ Academy · Leçon

Lire et écrire des fichiers CSV

Analyser des fichiers CSV ligne par ligne et écrire les résultats sur le disque

Lire et écrire des fichiers CSV est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 2 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 CSV ?

CSV (valeurs séparées par des virgules) est un format tabulaire en texte brut. Chaque ligne correspond à une ligne du tableau et les virgules séparent les colonnes. C'est simple, mais riche en cas particuliers.

En-têtes requis

Utilisez fstream pour les fichiers et sstream pour l'analyse.

#include <fstream>
#include <sstream>
#include <string>
#include <vector>

Ouvrir un fichier en lecture

Construisez un std::ifstream avec le chemin du fichier. Vérifiez qu'il a bien été ouvert.

std::ifstream file("data.csv");
if (!file) {
    std::cerr << "Cannot open file\n";
    return 1;
}

Lire ligne par ligne

Utilisez std::getline pour parcourir les lignes.

std::string line;
while (std::getline(file, line)) {
    process(line);
}

Séparer une ligne

Utilisez un stringstream et getline avec un délimiteur pour séparer chaque ligne en champs.

std::vector<std::string> split(const std::string& line) {
    std::vector<std::string> fields;
    std::stringstream ss(line);
    std::string field;
    while (std::getline(ss, field, ',')) {
        fields.push_back(field);
    }
    return fields;
}

Ignorer l'en-tête

Lisez et ignorez la première ligne si elle contient les noms des colonnes.

std::string header;
std::getline(file, header);   // discard

Analyser des champs typés

Convertissez les champs texte en valeurs typées avec std::stoi ou std::stod.

auto fields = split(line);
int id = std::stoi(fields[0]);
double price = std::stod(fields[2]);

Écrire un fichier CSV

Utilisez std::ofstream pour écrire. Insérez les valeurs dans le flux avec <<, puis ajoutez des virgules et des retours à la ligne.

std::ofstream out("results.csv");
out << "name,score\n";
out << "Ada,95\n";
out << "Bob,82\n";

Mettre entre guillemets les champs contenant des virgules

Si un champ contient une virgule, entourez-le de guillemets doubles. Pour inclure un guillemet dans le champ, écrivez-le deux fois.

std::string escape(const std::string& s) {
    if (s.find_first_of(",\"\n") == std::string::npos) return s;
    std::string r = "\"";
    for (char c : s) {
        if (c == '"') r += '"';
        r += c;
    }
    return r + "\"";
}

Gérer les retours à la ligne dans les champs

Les champs entre guillemets peuvent s'étendre sur plusieurs lignes physiques. Un lecteur CSV robuste suit l'état des guillemets entre les appels à getline. Pour les cas simples, limitez-vous aux champs sur une seule ligne.

Fermer le fichier

Les flux de fichiers se ferment automatiquement lors de leur destruction (RAII). Pour une fermeture explicite, utilisez file.close() ; c'est uniquement nécessaire si vous souhaitez réutiliser le flux.

Quand utiliser une bibliothèque

Pour les fichiers CSV complexes (virgules entre guillemets, valeurs sur plusieurs lignes, encodage), utilisez une bibliothèque comme rapidcsv ou csv-parser. N'écrivez votre propre solution que pour des formats simples et maîtrisés.

Vérification rapide

Quelle technique permet de séparer une ligne sur les virgules en utilisant uniquement la bibliothèque standard ?

Récapitulatif

Lisez les CSV avec std::ifstream et std::getline, séparez les lignes avec un stringstream et un délimiteur virgule, puis analysez les champs typés avec std::stoi/stod. Utilisez une véritable bibliothèque pour les CSV complexes.

Questions Fréquemment Posées

La leçon « Lire et écrire des fichiers CSV » est-elle gratuite ?

Oui — le texte complet de « Lire et écrire des fichiers CSV » 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 et écrire des fichiers CSV » ?

Analyser des fichiers CSV ligne par ligne et écrire les résultats sur le disque 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 2 sur 4.

Combien de temps prend la leçon « Lire et écrire des fichiers CSV » ?

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. Construire une calculatrice CLI simple
  2. Lire et écrire des fichiers CSV
  3. Un jeu de devinettes numériques
  4. Un compteur de fréquences des mots
← Retour à C++ Academy