
<sstream> let us store streamed data instead of just outputting it to cout. So we can read whole files.
Input Stream with
“Once an
Input Stream with istringstream
object:
“Once an istringstream
object has been created, parts of the string can be streamed and stored using the “extraction operator”: >>
. The extraction operator will read until whitespace is reached or until the stream fail”
Streaming int
The istringstream can stream AND store int data types in a variable. For example:int main ()
{
string a =("303433 2 3");
istringstream my_stream(a);
int n;
my_stream >> n;
cout << n << "\n";
}
Explanation:
- Include header file <stream> needed to use the istringstream object
- Declare function main whose return value is int
- Declare variable a whose value is comprised of the string values of “303433 2 3”
- Pass the variable a as an argument to the instringstream object referenced by my_stream variable
- Declare variable n which is of the int data type
- Once the instringstream object has been created use the extraction operator”:
>>
to extract parts of the stream into int n - print the contents of “n” with cout << n << “\n” ;
Example 2:
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
#include <sstream>
using std::istringstream;
int main()
{
string input( "Input test 123 4.7 A" );
istringstream inputString( input );
string string1;
string string2;
int integer;
double double1;
char character;
inputString >> string1 >> string2 >> integer >> double1 >> character;
cout << "\nstring1: " << string1
<< "\nstring2: " << string2 << "\n int: " << integer
<< "\ndouble: " << double1 << "\n char: " << character;
return 0;
}
Example is from here