public member function

std::streambuf::sgetn

<streambuf>
streamsize sgetn ( char * s, streamsize n );
Get sequence of characters
Calls the protected virtual member xsgetn, which gets up to n characters from the input sequence and stores them in the array pointed by s.

If less than n characters are available in the input sequence the function returns all the available characters, as if successive calls to sbumpc were made until an EOF (or traits::eof() for other traits) was returned.

Parameters

s
Pointer to a block of memory where the character sequence is to be stored.
n
Number of characters to be gotten. This is an integer value of type streamsize.

Return Value

The number of characters gotten, returned as a value of type streamsize.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// read a file buffer - sgetn () example
#include <iostream>
#include <fstream>
using namespace std;

int main () {

  char content[11];
  streambuf * pbuf;
  ifstream istr ("test.txt");

  pbuf = istr.rdbuf();

  pbuf->sgetn (content,10);

  istr.close();

  cout.write (content,10);

  return 0;
}


This example gets the first ten characters of the file buffer and prints them out.

Basic template member declaration

( basic_streambuf<charT,traits> )
 
streamsize sgetn ( char_type* s, streamsize n );


See also