名前空間
変種
操作

std::ostrstream::str

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

凍結した後、バッファの先頭へのポインタを返します。 実質的に rdbuf()->str() を呼びます。

目次

ノート

C の文字列として結果を使用する str() の呼び出しの前に、ストリームバッファはヌル終端されなければなりません。 stream << 1.2 などの通常の出力はヌル終端を格納しません。 ヌル終端は、一般的には std::ends を使用して、明示的に追加しなければなりません。

str() の呼び出しの後、動的ストリームは凍結状態になります。 この ostrstream オブジェクトが作成されたスコープを終了する前に、 freeze(false) の呼び出しが要求されます。 そうでなければ、デストラクタがメモリリークします。 さらに、凍結されたストリームへのさらなる出力は、確保されたバッファの終端に到達すると切り捨てられることがあり、これはバッファをヌル終端されない状態に置くことがあります。

[編集] 引数

(なし)

[編集] 戻り値

紐付けられている std::strsteambuf のバッファの先頭へのポインタ、またはバッファが利用可能でなければ NULL

[編集]

#include <strstream>
#include <iostream>
 
int main()
{
    std::ostrstream dyn; // dynamically-allocated output buffer
    dyn << "Test: " << 1.23; // not adding std::ends to demonstrate append behavior
    std::cout << "The output stream holds \"";
    std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; 
    // the stream is now frozen due to str()
    dyn << " More text" << std::ends;
    std::cout << "The output stream holds \"";
    std::cout.write(dyn.str(), dyn.pcount()) << "\"\n";
    dyn.freeze(false);
}

出力例:

The stream holds "Test: 1.23"
The stream holds "Test: 1.23 More "

関連項目

バッファを凍結させ、入力シーケンスの先頭ポインタを返します
(std::strstreambufのパブリックメンバ関数) [edit]