std::basic_streambuf<CharT,Traits>::pubsetbuf, std::basic_streambuf<CharT,Traits>::setbuf
提供: cppreference.com
< cpp | io | basic streambuf
basic_streambuf<CharT, Traits>* pubsetbuf( char_type* s, std::streamsize n ) | (1) | |
protected: virtual basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n ) | (2) | |
1) 最も派生したクラスの
setbuf(s, n)
を呼びます。2) この関数の基底クラスのバージョンは効果を持ちません。 派生クラスは、制御された文字シーケンス (バッファ) をユーザ提供の配列で置き換えたり削除したりするために、または処理系固有の何らかの他の目的のために、この関数をオーバーライドするかもしれません。
目次 |
[編集]引数
s | - | ユーザ提供のバッファの最初の CharT へのポインタ |
n | - | ユーザ提供のバッファの CharT の要素数 |
[編集]戻り値
1)
setbuf(s, n)
の戻り値。2)this。
[編集]例
読み込み用に 10k のバッファを提供します。 Linux では実際に読み込んだバイト数を観察するために strace ユーティリティを使用できます。
Run this code
#include <fstream>#include <iostream>#include <string> int main(){int cnt =0;std::ifstream file;char buf[10241]; file.rdbuf()->pubsetbuf(buf, sizeof buf); file.open("/usr/share/dict/words"); for(std::string line; getline(file, line);){ cnt++;} std::cout<< cnt <<'\n';}
[編集]関連項目
[仮想] | 制御された文字シーケンスの配列との置き換えを試みます ( std::basic_stringbuf<CharT,Traits,Allocator> の仮想プロテクテッドメンバ関数) |
[仮想] | ユーザ提供のバッファを提供し、またはこの filebuf をバッファなしにします ( std::basic_filebuf<CharT,Traits> の仮想プロテクテッドメンバ関数) |
[仮想] | 制御された文字シーケンスの配列での置き換えを試みます ( std::strstreambuf の仮想プロテクテッドメンバ関数) |
ファイルストリームのためのバッファを設定します (関数) |