0Pricing
C++ Academy · Lezione

Lettura e scrittura di file CSV

Analizzi i file CSV riga per riga e scriva i risultati su disco

Lettura e scrittura di file CSV è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

Che cos'è il CSV?

Il CSV (valori separati da virgole) è un formato tabellare in testo semplice. Ogni riga è un record; le virgole separano le colonne. È semplice, ma presenta molti casi particolari.

Header necessari

Utilizzi fstream per i file e sstream per l'analisi.

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

Aprire un file per la lettura

Costruisca un std::ifstream con il percorso del file. Verifichi che l'apertura sia riuscita.

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

Leggere riga per riga

Utilizzi std::getline per scorrere i record.

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

Suddividere una riga

Utilizzi uno stringstream e getline con un delimitatore per suddividere ogni riga in campi.

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;
}

Saltare l'intestazione

Legga e scarti la prima riga se contiene i nomi delle colonne.

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

Analizzare i campi tipizzati

Converta i campi stringa in valori tipizzati con std::stoi o std::stod.

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

Scrivere CSV

Utilizzi std::ofstream per scrivere. Inserisca i valori nello stream con << e aggiunga virgole e caratteri di nuova riga.

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

Racchiudere tra virgolette i campi con virgole

Se un campo contiene una virgola, lo racchiuda tra virgolette doppie. Per includere una virgoletta nel campo, la raddoppi.

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 + "\"";
}

Gestire le nuove righe nei campi

I campi tra virgolette possono estendersi su più righe fisiche. Un lettore CSV robusto mantiene lo stato delle virgolette tra chiamate a getline. Per i casi semplici, si limiti ai campi su una sola riga.

Chiudere il file

Gli stream dei file vengono chiusi automaticamente quando vengono distrutti (RAII). Per una chiusura esplicita, utilizzi file.close(): serve solo quando desidera riutilizzare lo stream.

Quando utilizzare una libreria

Per file CSV complessi, con virgole tra virgolette, valori su più righe o problemi di codifica, utilizzi una libreria come rapidcsv o csv-parser. Scriva una propria soluzione solo per formati semplici e controllati.

Verifica rapida

Quale tecnica suddivide una riga sulle virgole utilizzando solo la libreria standard?

Riepilogo

Legga il CSV con std::ifstream + std::getline, suddivida le righe con uno stringstream e un delimitatore virgola e analizzi i campi tipizzati con std::stoi/stod. Utilizzi una libreria apposita per i CSV complessi.

Domande Frequenti

La lezione «Lettura e scrittura di file CSV» è gratuita?

Sì — il testo completo di «Lettura e scrittura di file CSV» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «Lettura e scrittura di file CSV»?

Analizzi i file CSV riga per riga e scriva i risultati su disco Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Lettura e scrittura di file CSV»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Costruire una semplice calcolatrice CLI
  2. Lettura e scrittura di file CSV
  3. Un gioco di indovinare i numeri
  4. Un contatore della frequenza delle parole
← Torna a C++ Academy