C++ Academy · leksjon

String Stream stringstream for parsing

Bruk std::stringstream til å tokenisere og parse tekst til typede verdier.

Leksjon 3 av 413 trinn

String Stream stringstream for parsing er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hva er en stringstream?

std::stringstream omslutter en streng med et iostream-grensesnitt. Les fra og skriv til den med >> og << som om den var cin eller cout.

#include <sstream>
std::stringstream ss;

Bygge strenger med stringstream

Bruk den til å bygge komplekse strenger fra blandede typer. Kall .str() for å hente resultatet.

std::stringstream out;
out << "User: " << name << ", Age: " << age;
std::string result = out.str();

Tolke med stringstream

Initialiser den fra en streng og hent ut verdier med >>. Den deler teksten opp i tokener ved blanktegn.

std::stringstream in("42 3.14 hello");
int i; double d; std::string s;
in >> i >> d >> s;

Lese en linje inn i tokener

Kombiner getline med stringstream for å dele opp én linje om gangen.

std::string line = "1 2 3 4 5";
std::stringstream ss(line);
int n;
while (ss >> n) {
    std::cout << n * n << " ";
}
// 1 4 9 16 25

Dele ved et skilletegn

Send inn et skilletegn til getline på en stringstream for å dele ved komma, semikolon eller et hvilket som helst tegn.

std::string csv = "apple,banana,cherry";
std::stringstream ss(csv);
std::string fruit;
while (std::getline(ss, fruit, ',')) {
    std::cout << fruit << "\n";
}

istringstream og ostringstream

Det finnes tre varianter:

  • std::istringstream — bare lesing
  • std::ostringstream — bare skriving
  • std::stringstream — begge deler

Bruk den mest spesifikke varianten for tydelighetens skyld.

Kontrollere tolkningsfeil

Hvis uttrekkingen mislykkes, for eksempel på grunn av feil type, setter strømmen et fail-bit. Kontroller !ss eller ss.fail() etter uttrekkingen.

std::stringstream ss("not_a_number");
int x;
if (!(ss >> x)) {
    std::cout << "Parse failed";
}

Tilbakestille en stringstream

Hvis De vil bruke en stringstream på nytt, må De tømme både tilstanden og innholdet.

std::stringstream ss;
ss << "first";
ss.str("");        // clear contents
ss.clear();        // clear flags
ss << "second";

Tall til streng

For enkle konverteringer er std::to_string kortere enn en stringstream.

std::string s = std::to_string(42);   // "42"
std::string p = std::to_string(3.14); // "3.140000"

Streng til tall uten strømmer

std::stoi, std::stod og std::stoll tolker tall fra strenger og kaster unntak ved ugyldige inndata.

int n = std::stoi("42");
double d = std::stod("3.14");
// std::stoi("xyz") throws std::invalid_argument

C++17 std::from_chars

For maksimal hastighet tolker std::from_chars i <charconv> uten unntak eller allokeringer. Ideell i ytelseskritiske kodebaner.

Hurtigsjekk

Hvilken header må De inkludere for å bruke std::stringstream?

Oppsummering

std::stringstream gjør strenger om til strømmer for enkel tolking og formatering. Kombiner den med std::getline for å dele ved skilletegn. Foretrekk std::to_string og std::stoi i enkle tilfeller.

Gratis å komme i gang

Lær deg C++ med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «String Stream stringstream for parsing» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «String Stream stringstream for parsing», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «String Stream stringstream for parsing»?

Bruk std::stringstream til å tokenisere og parse tekst til typede verdier. Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C++ Academy?

Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «String Stream stringstream for parsing»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?

Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. std::string kontra C-stilens char-arrayer
  2. Strengoperasjoner: sammenføying, substr, find og replace
  3. String Stream stringstream for parsing
  4. Strengkonverteringer: to_string og stoi
← Tilbake til C++ Academy