basic_streambuf::sgetn
到 _Count 字符来提取从输入缓冲区和中提供的缓冲区 _Ptr存储它们。
此方法是可能不安全的,因此,因为它依赖于调用方检查传递的值是否正确。
streamsize sgetn(
char_type *_Ptr,
streamsize _Count
);
参数
_Ptr
包含提取字符的缓冲区。_Count
要读取的元素的数目。
返回值
要读取的元素的数目。 有关更多信息,请参见streamsize。
备注
成员函数返回 xsgetn(_Ptr,_Count)。
示例
// basic_streambuf_sgetn.cpp
// compile with: /EHsc /W3
#include <iostream>
#include <fstream>
int main()
{
using namespace std;
ifstream myfile("basic_streambuf_sgetn.txt", ios::in);
char a[10];
// Extract 3 characters from myfile and store them in a.
streamsize i = myfile.rdbuf()->sgetn(&a[0], 3); // C4996
a[i] = myfile.widen('\0');
// Display the size and contents of the buffer passed to sgetn.
cout << i << " " << a << endl;
// Display the contents of the original input buffer.
cout << myfile.rdbuf() << endl;
}
输入:basic_streambuf_sgetn.txt
testing
Output
3 tes
ting
要求
标头: <streambuf>
命名空间: std