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); // discardAnalizzare 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
- Costruire una semplice calcolatrice CLI
- Lettura e scrittura di file CSV
- Un gioco di indovinare i numeri
- Un contatore della frequenza delle parole