String Stream stringstream for parsing
Bruk std::stringstream til å tokenisere og parse tekst til typede verdier.
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 25Dele 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 lesingstd::ostringstream— bare skrivingstd::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_argumentC++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.
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
- std::string kontra C-stilens char-arrayer
- Strengoperasjoner: sammenføying, substr, find og replace
- String Stream stringstream for parsing
- Strengkonverteringer: to_string og stoi