名前空間
変種
操作

std::basic_stringbuf<CharT,Traits,Allocator>::setbuf

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

#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>のパブリックメンバ関数) [edit]