C ++ streambuf - sgetn

Descripción

Se utiliza para obtener la secuencia de caracteres y llama al miembro virtual protegido xsgetn con los mismos argumentos sy n.

Declaración

A continuación se muestra la declaración para std :: basic_streambuf :: sgetn.

streamsize sgetn (char_type* s, streamsize n);

Parámetros

  • sPuntero a una matriz donde se copia la secuencia de caracteres.

  • nNúmero máximo de caracteres a recuperar.

Valor devuelto

Devuelve el número de caracteres copiados.

Excepciones

Basic guarantee - si se lanza una excepción, el búfer de flujo está en un estado válido.

Carreras de datos

Modifica hasta todos los primeros n caracteres de la matriz apuntada por s.

Ejemplo

En el siguiente ejemplo se 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;
}