C++ streambuf - sgetn
描述
它用于获取字符序列并使用相同的参数 s 和 n 调用受保护的虚拟成员 xsgetn。
声明
以下是 std::basic_streambuf::sgetn 的声明。
streamsize sgetn (char_type* s, streamsize n);
参数
s指向复制字符序列的数组的指针。
n要检索的最大字符数。
返回值
它返回复制的字符数。
异常
Basic guarantee − 如果抛出异常,则流缓冲区处于有效状态。
数据竞争
它最多修改 s 指向的数组中的所有前 n 个字符。
示例
在下面的例子中解释了 std::basic_streambuf::sgetn。
#include <iostream>
#include <fstream>
int main () {
char* contents;
std::ifstream istr ("sample.txt");
if (istr) {
std::streambuf * pbuf = istr.rdbuf();
std::streamsize size = pbuf->pubseekoff(0,istr.end);
pbuf->pubseekoff(0,istr.beg);
contents = new char [size];
pbuf->sgetn (contents,size);
istr.close();
std::cout.write (contents,size);
}
return 0;
}

