sgetn
描述 (Description)
它用于获取字符序列,并使用相同的参数s和n调用受保护的虚拟成员xsgetn。
声明 (Declaration)
以下是std :: basic_streambuf :: sgetn的声明。
streamsize sgetn (char_type* s, streamsize n);
参数 (Parameters)
s指向复制字符序列的数组s指针。
n要检索的最大字符数。
返回值 (Return Value)
它返回复制的字符数。
异常 (Exceptions)
Basic guarantee - 如果抛出异常,则流缓冲区处于有效状态。
数据竞争 (Data races)
它最多可以修改s指向的数组中的前n个字符。
例子 (Example)
在下面的例子中解释了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;
}