Syntax:
#include <sstream> void str( const string& s ); string str();
The function str() can be used in two ways. First, it can be used to get a copy of the string that is being manipulated by the current stream string. This is most useful with output strings. For example:
ostringstream stream1; stream1 << "Testing!" << endl; cout << stream1.str();
Second, str() can be used to copy a string into the stream. This is most useful with input strings. For example:
istringstream stream1; string string1 = "25"; stream1.str(string1);
N.B.:This leaves the “get” pointer and the “put” pointer set to 0. This can lead to confusing results when initializing a stringstream used for bidirectional operations.
str() is also handy when you need to clear and reset the stream so that it can be reused:
Warning: the member function clear() does *not* erase the content of the underlying string object, it merely clears the state of the ios object, i.e. it executes basic_ios::clear().
istringstream stream1; float num; // use it once string string1 = "25 1 3.235\n1111111\n222222"; stream1.str(string1); while( stream1 >> num ) cout << "num: " << num << endl; // displays numbers, one per line // use the same string stream again with str() string string2 = "1 2 3 4 5 6 7 8 9 10"; stream1.clear(); // not what you think! But still required to clear the stream's IO state stream1.str(string2); while( stream1 >> num ) cout << "num: " << num << endl; // displays numbers, one per line
Related Topics: rdbuf, C++ I/O Streams