str [C++ Reference]
Keywords: io,sstream,str
Date: 2009-06-17T10:37:09-0700

[[str]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- fr
- it
- jp
- pl
- ru
- tr

## str

Syntax:

        #include <sstream>
        void str( 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

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •