Spec-Zone.ru › C++

std::basic_streambuf<CharT,Traits>::sgetn, std::basic_streambuf<CharT,Traits>::xsgetn

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 символов, функция вызывает uflow(), чтобы получить больше символов, пока не будет возвращено Traits::eof().
Классы, производные от std::basic_streambuf, могут предоставлять более эффективные реализации этой функции.

Параметры

s - указатель на начало массива char_type
count - максимальное количество символов для чтения.

Возвращаемое значение

Количество успешно считанных символов. Если оно меньше count, входная последовательность достигла конца.

Примечания

Правило о «более эффективных реализациях» позволяет выполнять массовый ввод-вывод без промежуточной буферизации: именно поэтому std::ifstream::read в некоторых реализациях iostreams просто передаёт указатель системному вызову POSIX read().

Пример

См. также

sputn
вызывает xsputn()
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_streambuf/sgetn

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API