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

< cpp‎ | io‎ | basic streambuf
 
 
 
 
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 ,则输入序列已抵达结尾。

注意

关于“更高效实现”的规则容许大量无中间缓冲的 I/O :这是一些 iostream 的实现中 std::ifstream::read 简单地传递指针给 POSIX read() 系统调用的原因。

示例

参阅

调用 xsputn()
(公开成员函数)