受保护的虚成员函数
<streambuf> <iostream>

std::basic_streambuf::xsgetn

streamsize xsgetn (char_type* s, streamsize n);
获取字符序列
受控输入序列中检索字符,并将它们存储在 s 指向的数组中,直到提取了 n 个字符或到达序列末尾。

basic_streambuf 中的默认行为等同于调用 sbumpc n 次,如果任何调用返回 traits_type::eof(),则停止。

这是一个虚成员函数,派生类可以提供更高效的实现。事实上,大多数库实现都会重写它以用于 basic_filebuf 和/或 basic_stringbuf

参数

s
指向要复制字符序列的数组的指针。
成员类型 char_type流缓冲区(第一个类模板参数)中字符的类型。
n
要检索的最大字符数。
这应该是一个非负值。
streamsize 是一个带符号整型。

返回值

复制的字符数。
streamsize 是一个带符号整型。

数据竞争

修改 s 指向的数组中最多前 n 个字符。
修改*流缓冲区*对象。
对同一数组或同一流缓冲区对象的并发访问可能会引入数据争用。

异常安全

基本保证:如果抛出异常,则流缓冲区处于有效状态(这也适用于标准派生类)。

无效参数会导致未定义行为

另见