名前空間
変種
操作

std::ostrstream::ostrstream

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

新しい出力 strstream およびそのベースとなる std::strstreambuf を構築します。

1) ベースとなる std::strstreambuf をデフォルト構築し (動的に成長するバッファを作成します)、その strstreambuf メンバのアドレスを使用して基底クラスを初期化します。
2) ベースとなる std::strstreambuf メンバのアドレスを使用して基底クラスを初期化します。 std::strstreambuf は以下の2つのいずれかの方法で初期化されます。 いずれもユーザ提供の固定サイズ配列に書き込みます。
a) modeapp ビットがセットされていない場合は、 strstreambuf(s, n, s) を呼ぶことによってバッファを構築します。 s によって最初の要素が指されている配列に n 個より少ない要素しかない場合、動作は未定義です。
b) modeapp ビットがセットされている場合は、 strstreambuf(s, n, s + std::strlen(s)) を呼ぶことによってバッファを構築します。 s によって最初の要素が指されている配列に n 個より少ない要素しかない場合、または配列が有効なヌル終端文字シーケンスを格納していない場合、動作は未定義です。

[編集] 引数

s - 出力バッファとして使用する文字配列
n - 出力バッファとして使用される配列のサイズ
mode - ストリームオープンモードを指定します。 これはビットマスク型であり、以下の定数が定義されています (が、 app のみ使用されます)。
定数 説明
app 各書き込み前にストリームの終端へシークします
binary バイナリモードで開きます
in 読み込み用に開きます
out 書き込み用に開きます
trunc 開くときにストリームの内容を破棄します
ate 開いた直後にストリームの終端へシークします

[編集]

#include <iostream>
#include <strstream>
 
int main()
{
    std::ostrstream s1; // dynamic buffer
    s1 << 1 << ' ' << 3.14 << " example\n" << std::ends;
    std::cout << s1.str();
    s1.freeze(false);
 
    char arr[15] = "Hello";
 
    std::ostrstream s2(arr, sizeof arr, std::ios_base::app);
    s2 << ", world!" << std::ends;
    std::cout << s2.str() << '\n';
    std::cout << arr << '\n'; // streams use the provided arrays
}

出力:

1 3.14 example
Hello, world!
Hello, world!


[編集] 関連項目

strstreambuf オブジェクトを構築します
(std::strstreambufのパブリックメンバ関数) [edit]
strstream を構築し、オプションでバッファを確保します
(std::istrstreamのパブリックメンバ関数) [edit]
strstream を構築し、オプションでバッファを確保します
(std::strstreamのパブリックメンバ関数) [edit]