std::stringstream reads values from a string using the same style as console input.

string stream A string stream lets code parse tokens from a string into typed variables.

String Streams

input
string_streams.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string input = "Ada 3";

    std::stringstream stream(input);
    std::string name;
    int lessons = 0;

    stream >> name >> lessons;

    std::cout << "name=" << name << std::endl;
    std::cout << "lessons=" << lessons << std::endl;
    std::cout << "next=" << lessons + 1 << std::endl;
    return 0;
}
#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string input = "Bjarne 5";

    std::stringstream stream(input);
    std::string name;
    int lessons = 0;

    stream >> name >> lessons;

    std::cout << "name=" << name << std::endl;
    std::cout << "lessons=" << lessons << std::endl;
    std::cout << "next=" << lessons + 1 << std::endl;
    return 0;
}
#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string input = "Grace 2";

    std::stringstream stream(input);
    std::string name;
    int lessons = 0;

    stream >> name >> lessons;

    std::cout << "name=" << name << std::endl;
    std::cout << "lessons=" << lessons << std::endl;
    std::cout << "next=" << lessons + 1 << std::endl;
    return 0;
}
  1. input ← Ada 3, stream ← (empty), name ← (empty), lessons ← 0

    5int main() {6    std::string input→ Ada 3 = "Ada 3"; //@input="Bjarne 5", "Grace 2"78    std::stringstream stream→ (empty)(inputAda 3);9    std::string name→ (empty);10    int lessons→ 0 = 0;1112    stream(empty) >> name→ Ada >> lessons→ 3;1314    std::cout << "name=" << nameAda << std::endl;15    std::cout << "lessons=" << lessons3 << std::endl;16    std::cout << "next=" << lessons3 + 1 << std::endl;17    return 0;18}
    outputname=Ada
    lessons=3
    next=4
  1. input ← Bjarne 5, stream ← (empty), name ← (empty), lessons ← 0

    5int main() {6    std::string input→ Bjarne 5 = "Bjarne 5";78    std::stringstream stream→ (empty)(inputBjarne 5);9    std::string name→ (empty);10    int lessons→ 0 = 0;1112    stream(empty) >> name→ Bjarne >> lessons→ 5;1314    std::cout << "name=" << nameBjarne << std::endl;15    std::cout << "lessons=" << lessons5 << std::endl;16    std::cout << "next=" << lessons5 + 1 << std::endl;17    return 0;18}
    outputname=Bjarne
    lessons=5
    next=6
  1. input ← Grace 2, stream ← (empty), name ← (empty), lessons ← 0

    5int main() {6    std::string input→ Grace 2 = "Grace 2";78    std::stringstream stream→ (empty)(inputGrace 2);9    std::string name→ (empty);10    int lessons→ 0 = 0;1112    stream(empty) >> name→ Grace >> lessons→ 2;1314    std::cout << "name=" << nameGrace << std::endl;15    std::cout << "lessons=" << lessons2 << std::endl;16    std::cout << "next=" << lessons2 + 1 << std::endl;17    return 0;18}
    outputname=Grace
    lessons=2
    next=3