stringstream in C++ and its Applications (original) (raw)
Last Updated : 26 Aug, 2025
A stringstream is a part of the C++ Standard Library, defined in the header file. It allows us to read from and write to strings like they are streams.
It lets us take a string and extract data from it (like from cin), It also lets us build strings by inserting data into it (like into cout).
Types of String Streams
There are three types of string stream classes in C++:
| Class | Purpose |
|---|---|
| stringstream | Both input and output |
| istringstream | Input only (like cin) |
| ostringstream | Output only (like cout) |
Uses or Applications of stringstream:
Convert String to Integer
C++ `
#include
#include
using namespace std;
int main() {
string str = "123";
int num;
// Create a stringstream object initialized with 'str'
stringstream ss(str);
// Extract an integer from the stringstream and store it in 'num'
ss >> num;
cout << "Integer: " << num << endl;
return 0; }
`
Convert Integer to String
C++ `
#include
#include
using namespace std;
int main() {
int num = 456;
string str;
//Create an empty stringstream object
stringstream ss;
// Insert the integer 'num' into the stringstream
// This converts the number into characters inside the stream
ss << num;
// Extract the contents of the stream as a string and store it in 'str'
ss>>str;
cout << "String: " << str << endl;
return 0; }
`
Split a Sentence into Words
C++ `
#include
#include
#include
using namespace std;
int main() {
string sentence = "C++ is powerful";
string word;
// Create a stringstream object initialized with the sentence
// This lets us read word by word like a stream
stringstream ss(sentence);
// Extract words from the stringstream one by one until no more words left
while (ss >> word) {
cout << word << endl;
}
return 0; }
`
Combine multiple values into a String
C++ `
#include
#include
using namespace std;
int main() {
int age = 25;
string name = "John";
// Create an empty stringstream object
stringstream ss;
// Insert multiple pieces of data (text, variables) into the stringstream
ss << "Name: " << name << ", Age: " << age;
// Get the combined string from the stringstream
string result = ss.str();
cout << result << endl;
return 0; }
`
Output
Name: John, Age: 25
Resetting or Clearing a stringstream
C++ `
#include #include using namespace std;
int main() { stringstream ss;
// Put some data into the stringstream
ss << "Hello, world!";
cout << "Before clearing: " << ss.str() << endl;
// Clear the contents of the stringstream
ss.str("");
// Reset the stringstream's state flags (like eof, fail)
ss.clear();
// Now we can reuse the stringstream for new data
ss << "New data here!";
cout << "After clearing and reuse: " << ss.str() << endl;
return 0;}
`
Output
Before clearing: Hello, world! After clearing and reuse: New data here!