C ++ streambuf - sgetn

Descrição

É usado para obter a sequência de caracteres e chamar o membro virtual protegido xsgetn com os mesmos argumentos s e n.

Declaração

A seguir está a declaração para std :: basic_streambuf :: sgetn.

streamsize sgetn (char_type* s, streamsize n);

Parâmetros

  • sPonteiro para uma matriz onde a seqüência de caracteres é copiada.

  • nNúmero máximo de caracteres a serem recuperados.

Valor de retorno

Ele retorna o número de caracteres copiados.

Exceções

Basic guarantee - se uma exceção for lançada, o buffer de fluxo está em um estado válido.

Corridas de dados

Ele modifica até todos os primeiros n caracteres na matriz apontada por s.

Exemplo

No exemplo a seguir explica sobre 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;
}