名前空間
変種
操作

std::strstreambuf::str

提供: cppreference.com
< cpp‎ | io‎ | strstreambuf
 
 
 
 
char* str()const;

freeze() を呼び、 get 領域の先頭ポインタのコピー std::streambuf::eback() を返します。

std::strstream によって提供されるインタフェースを通して構築されたすべての書き込み可能な std::strstreambuf オブジェクトについて、 get 領域の先頭は put 領域の先頭でもあります。

目次

[編集]引数

(なし)

[編集]戻り値

eback() のコピー。 ヌルポインタの場合もあります。

[編集]ノート

この関数は一般的には std::strstream インタフェースを通して呼ばれます。

freeze() の呼び出しは、次の明示的な freeze(false) の呼び出しまで返されたポインタが有効であり続けることを保証します。 そうでなければ (動的バッファの場合)、あらゆる出力操作はポインタを無効化するであろうバッファの再確保を発生させる可能性があります。 また、それは、バッファ (より一般的にはそれを管理する std::strstream) が破棄される前に freeze(false) が呼ばれなければ、 std::strstreambuf のデストラクタでのメモリリークも発生させます。

[編集]

#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";}

出力:

R/W buffer holds "Test: 1.23" Write-only buffer holds "1.23" Read-only buffer holds "1 2 31 2 3"

[編集]関連項目

出力バッファにアクセスします
(std::strstreamのパブリックメンバ関数)[edit]
出力バッファにアクセスします
(std::ostrstreamのパブリックメンバ関数)[edit]
出力バッファにアクセスします
(std::istrstreamのパブリックメンバ関数)[edit]
close