std::ostrstream::ostrstream
提供: cppreference.com
<tbody>
</tbody>
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)
mode に app ビットがセットされていない場合は、 strstreambuf(s, n, s) を呼ぶことによってバッファを構築します。 s によって最初の要素が指されている配列に n 個より少ない要素しかない場合、動作は未定義です。b)
mode に app ビットがセットされている場合は、 strstreambuf(s, n, s + std::strlen(s)) を呼ぶことによってバッファを構築します。 s によって最初の要素が指されている配列に n 個より少ない要素しかない場合、または配列が有効なヌル終端文字シーケンスを格納していない場合、動作は未定義です。引数
| s | - | 出力バッファとして使用する文字配列 | ||||||||||||||
| n | - | 出力バッファとして使用される配列のサイズ | ||||||||||||||
| mode | - | ストリームオープンモードを指定します。 これはビットマスク型であり、以下の定数が定義されています (が、 app のみ使用されます)。
|
例
Run this code
#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のパブリックメンバ関数)
| |
| strstream を構築し、オプションでバッファを確保します ( std::istrstreamのパブリックメンバ関数)
| |
| strstream を構築し、オプションでバッファを確保します ( std::strstreamのパブリックメンバ関数)
|