首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::strstreambuf::str

char* str() const;

?

?

打电话freeze(),然后返回GET区域的开始指针的副本,std::streambuf::eback()...

GET区域的开始,用于所有可写的std::strstreambuf提供的接口构造的对象。std::strstream,也是投放区的开始。

参数

%280%29

返回值

一份eback(),它可能是空指针。

注记

此函数通常通过std::strstream接口。

打电话给freeze()确保返回的指针在下一次显式调用之前仍然有效。freeze(false)否则,在动态缓冲区%29上的%28,任何输出操作都会触发缓冲区重新分配,这将使指针失效。的析构函数中的内存泄漏。std::strstreambuf,除非freeze(false)在缓冲区%28之前调用,更常见的是,在std::strstream管理它的%29被销毁。

二次

代码语言:javascript
复制
#include <strstream>
#include <iostream>
 
int main()
{
    std::strstream dyn; // dynamically-allocated read/write buffer
    dyn << "Test: " << 1.23 << std::ends;
    std::strstreambuf* buf = dyn.rdbuf();
    std::cout << "R/W buffer holds \"" << buf->str() // or dyn.str()
              << "\"\n";
    dyn.freeze(false); // after calling .str() on a dynamic strstream
 
    char arr[10];
    std::ostrstream user(arr, 10); // fixed-size write-only buffer
    buf = user.rdbuf();
    user << 1.23 << std::ends;
    std::cout << "Write-only buffer holds \"" << buf->str() // or user.str()
              << "\"\n";
 
    std::istrstream lit("1 2 3"); // fixed-size read-only buffer
    buf = lit.rdbuf();
    std::cout << "Read-only buffer holds \"" << buf->str() // or lit.str()
              << "\"\n";
}

二次

产出:

二次

代码语言:javascript
复制
R/W buffer holds "Test: 1.23"
Write-only buffer holds "1.23"
Read-only buffer holds "1 2 31 2 3"

二次

另见

str

accesses the output buffer (public member function of std::strstream)

str

accesses the output buffer (public member function of std::ostrstream)

str

accesses the output buffer (public member function of std::istrstream)

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com