std::basic_streambuf<CharT,Traits>::sgetn, std::basic_streambuf<CharT,Traits>::xsgetn
来自 cppreference.com
< 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 在 iostreams 的某些实现中只是将指针传递给 POSIX read()
系统调用的方式。
[编辑] 示例
此部分不完整 原因:没有示例 |
[编辑] 另请参见
调用 xsputn() (公有成员函数) |