名前空間
変種
操作

std::strstreambuf::str

提供: cppreference.com
< cpp‎ | io‎ | strstreambuf
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
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]