◐ Shell
clean mode source ↗

std::basic_streambuf<CharT,Traits>::sgetn, std::basic_streambuf<CharT,Traits>::xsgetn - cppreference.com

提供: cppreference.com

<tbody> </tbody>

std::streamsize sgetn( char_type* s, std::streamsize count );

(1)

protected: virtual std::streamsize xsgetn( char_type* s, std::streamsize count );

(2)

1) 最も派生したクラスの xsgetn(s, count) を呼びます。

2) 入力シーケンスから count 個の文字を読み込み、それらを s の指す文字配列に格納します。 文字は sbumpc() を繰り返し呼んだかのように読み込まれます。 つまり、 count 個より少ない文字しか直ちに利用可能でなければ、さらなる文字を提供するために Traits::eof() が返されるまで uflow() を呼びます。

std::basic_streambuf から派生したクラスはこの関数のより効率的な実装を提供しても構いません。

引数

s - 文字型配列の先頭へのポインタ
count - 書き込む最大文字数

戻り値

読み込みに成功した文字数。 count より小さい場合は入力シーケンスが終端に達しました。

ノート

「より効率的な実装」に関するルールは中間バッファリングなしのバルク I/O を許容しています。 これにより入出力ストリームのいくつかの実装では std::ifstream::read が単純に POSIX の read() システムコールにポインタを渡すことができます。

関連項目