public member function
<sstream>

std::basic_stringbuf::str

get (1)
basic_string<char_type,traits_type,allocator_type> str() const;
set (2)
void str (const basic_string<char_type,traits_type,allocator_type>& str);
Get/set content
The first form (1) returns a basic_string object with a copy of the current contents in the stream buffer.

The second form (2) sets str as the contents of the stream buffer, discarding any previous contents. The object preserves its open mode: if this includes ios_base::ate, the put pointer (pptr) is moved to the end of the new sequence.

Parameters

str
A basic_string object with the same template parameters (charT, traits and Alloc), whose content is copied.
Member types char_type, traits_type and allocator_type are the class template parameters of basic_stringbuf.

Return Value

For (1), a basic_string object with a copy of the current contents in the stream buffer.

Member types char_type, traits_type and allocator_type are the class template parameters of basic_stringbuf.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// stringbuf example
#include <string>       // std::string
#include <iostream>     // std::cout, std::ostream, std::hex
#include <sstream>      // std::stringbuf

int main ()
{
  std::stringbuf buffer;             // empty buffer

  std::ostream os (&buffer);      // associate stream buffer to stream

  // mixing output to buffer with inserting to associated stream:
  buffer.sputn ("255 in hexadecimal: ",20);
  os << std::hex << 255;

  std::cout << buffer.str();

  return 0;
}

255 in hexadecimal: ff


Data races

Accesses (1) or modifies (2) the basic_stringbuf object.
Concurrent access to the same object may cause data races.

Exception safety

Basic guarantee: if an exception is thrown, the object is in a valid state.

See also