# std::basic_stringstream::basic_stringstream

From cppreference.com
< cpp‎ | io‎ | basic stringstream

explicit basic_stringstream( ios_base::openmode mode = ios_base::in|ios_base::out ); | (1) |
explicit basic_stringstream( const std::basic_string<CharT,Traits,Allocator>& str, ios_base::openmode mode = ios_base::in|ios_base::out ); | (2) |
basic_stringstream( basic_stringstream&& other ); | (3) | (since C++11)

Constructs new string stream.

1) Constructs new underlying string device. The underlying `basic_stringbuf` object is constructed as basic_stringbuf<Char,Traits,Allocator>(mode).

2) Uses a copy of `str` as initial contents of the underlying string device. The underlying `basic_stringbuf` object is constructed as basic_stringbuf<Char,Traits,Allocator>(str, mode).

3) Move constructor. Constructs the string stream with the state of `other` using move semantics.

### Parameters

str | - | string to use as initial contents of the string stream

mode

-

specifies stream open mode. It is bitmask type, the following constants are defined:

Constant | Explanation
`app` | seek to the end of stream before each write
`binary` | open in binary mode
`in` | open for reading
`out` | open for writing
`trunc` | discard the contents of the stream when opening
`ate` | seek to the end of stream immediately after open

other | - | another string stream to use as source

### Example

Run this code

    #include <iostream>
    #include <sstream>
    int main()
    {
        // default constructor (input/output stream)
        std::stringstream buf1;
        buf1 << 7;
        int n = 0;
        buf1 >> n;
        std::cout << "buf1 = " << buf1.str() << " n = " << n << '\n';

        // input stream
        std::istringstream inbuf("-10");
        inbuf >> n;
        std::cout << "n = " << n << '\n';

        // output stream in append mode (C++11)
        std::ostringstream buf2("test", std::ios_base::ate);
        buf2 << '1';
        std::cout << buf2.str() << '\n';
    }

Output:

    buf1 = 7 n = 7
    n = -10
    test1

### See also

str | gets or sets the contents of underlying string device object (public member function)
(constructor) | constructs a basic_stringbuf object (public member function of `std::basic_stringbuf`)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_stringstream/basic_stringstream&oldid=50861"