C++ Academy · Lektion

Læsning og skrivning af CSV-filer

Fortolk CSV-filer linje for linje, og skriv resultaterne tilbage til disken

Lektion 2 af 414 trin

Læsning og skrivning af CSV-filer er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvad er CSV?

CSV (Comma-Separated Values) er et tabelformat i ren tekst. Hver linje er en række, og kommaer adskiller kolonner. Det er enkelt, men fyldt med specialtilfælde.

Nødvendige headerfiler

Brug fstream til filer og sstream til fortolkning.

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

Åbn en fil til læsning

Konstruér en std::ifstream med filstien. Kontrollér, at den blev åbnet.

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

Læsning linje for linje

Brug std::getline til at gennemløbe rækkerne.

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

Opdeling af en række

Brug en stringstream og getline med et skilletegn til at opdele hver række i felter.

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

Spring headeren over

Læs og kassér den første linje, hvis den indeholder kolonnenavne.

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

Fortolkning af felter med typer

Konvertér strengfelter til værdier med typer med std::stoi eller std::stod.

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

Skrivning af CSV

Brug std::ofstream til at skrive. Skriv værdier til streamen med <<, og tilføj kommaer og linjeskift.

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

Citationstegn omkring felter med kommaer

Hvis et felt indeholder et komma, skal du omslutte det med dobbelte anførselstegn. Hvis du vil medtage et anførselstegn i feltet, skal du fordoble det.

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

Håndtering af linjeskift i felter

Felter i anførselstegn kan strække sig over flere fysiske linjer. En robust CSV-læser holder styr på anførselstegnens tilstand på tværs af kald til getline. I enkle tilfælde bør du holde dig til felter uden flere linjer.

Lukning af filen

Filstreams lukkes automatisk, når de destrueres (RAII). Du kan lukke eksplicit med file.close() — det er kun nødvendigt, hvis du vil genbruge streamen.

Hvornår skal du bruge et bibliotek?

Til komplekse CSV-filer (kommaer i anførselstegn, værdier over flere linjer, tegnkodning) bør du bruge et bibliotek som rapidcsv eller csv-parser. Skriv kun selv en løsning til enkle, kontrollerede formater.

Hurtigt tjek

Hvilken teknik opdeler en linje ved kommaer udelukkende ved hjælp af standardbiblioteket?

Opsummering

Læs CSV med std::ifstream + std::getline, opdel rækker med en stringstream og et kommaseparerende skilletegn, og fortolk felter med typer med std::stoi/stod. Brug et rigtigt bibliotek til komplekse CSV-filer.

Gratis at komme i gang

Lær C++ med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
51
Lektioner
203

Ofte stillede spørgsmål

Er lektionen “Læsning og skrivning af CSV-filer” gratis?

Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Læsning og skrivning af CSV-filer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Læsning og skrivning af CSV-filer”?

Fortolk CSV-filer linje for linje, og skriv resultaterne tilbage til disken Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C++ Academy?

Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Læsning og skrivning af CSV-filer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C++ Academy-lektion?

Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Bygning af en simpel beregner som CLI
  2. Læsning og skrivning af CSV-filer
  3. Et talgættespil
  4. En tæller for ordfrekvens
← Tilbage til C++ Academy