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:在某些 iostreams 的实现中,std::ifstream::read 就是这样将指针直接传递给 POSIX read() 系统调用的。
[编辑] 示例
| 本节不完整 原因:无示例 |
[编辑] 参阅
| 调用 xsputn() (公开成员函数) |