std::basic_stringbuf<CharT,Traits,Allocator>::setbuf
提供: cppreference.com
<tbody>
</tbody>
protected: virtual std::basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n ) |
||
s がヌルポインタかつ n がゼロの場合、この関数は効果を持ちません。
そうでなければ、効果は処理系定義です。 いくつかの処理系は何もしませんが、いくつかの処理系はバッファとして現在使用されている std::string メンバをクリアし、バッファおよび入出力文字シーケンスとして最初の要素が s によって指されているサイズ n のユーザ提供の文字配列を使用し始めます。
この関数は protected virtual です。 pubsetbuf() を通して、または std::basic_stringbuf から派生したユーザ定義クラスのメンバ関数からのみ、呼ぶことができます。
引数
| s | - | ユーザ提供バッファの最初の CharT へのポインタ、またはヌル |
| n | - | ユーザ提供バッファの CharT の要素数、またはゼロ |
戻り値
this。
ノート
非推奨のストリームバッファ std::strstreambuf や boost.IOStreams のデバイス boost::basic_array は、移植性のある方法でユーザ提供の文字配列を用いた入出力バッファリングを実装するために使用することができます。
例
stringstream の setbuf の機能を確認します。
Run this code
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream ss;
char c[1024] = {};
ss.rdbuf()->pubsetbuf(c, 1024);
ss << 3.14 << '\n';
std::cout << c << '\n';
}
出力:
3.14 (on GNU g++/libstdc++ and SunPro C++/roguewave)
<nothing> (on MS Visual Studio 2010, SunPro C++/stlport4, CLang++/libc++)
関連項目
setbuf() を呼びます ( std::basic_streambuf<CharT,Traits>のパブリックメンバ関数)
|