命名空间
变体
操作

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

来自 cppreference.cn
< 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 而无需中间缓冲:这就是 std::ifstream::read 在 iostream 的某些实现中简单地将指针传递给 POSIX read() 系统调用的原因

[编辑] 示例

[编辑] 参见

调用 xsputn()
(公共成员函数) [编辑]