std::basic_streambuf<CharT,Traits>::pubsetbuf, std::basic_streambuf<CharT,Traits>::setbuf
提供: cppreference.com
<tbody>
</tbody>
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の仮想プロテクテッドメンバ関数)
|
| ファイルストリームのためのバッファを設定します (関数) |