public member function
<sstream>

std::stringbuf::str

get (1)
string str() const;
set (2)
void str (const string& str);
获取/设置字符串内容
第一种形式(1)返回一个string对象,其中包含流缓冲区当前内容的副本。

第二种形式(2)str设置为流缓冲区的内容,丢弃所有先前的内容。对象保留其打开模式:如果其中包含ios_base::ate,则输出指针pptr)将移动到新序列的末尾。

参数

str
一个string对象,其内容被复制。

返回值

对于(1),一个string对象,其中包含流缓冲区当前内容的副本。

示例

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


数据竞争

访问(1)或修改(2) stringbuf对象。
并发访问同一对象可能导致数据竞争。

异常安全

基本保证:如果抛出异常,对象处于有效状态。

另见