C ++ streambuf - sgetn

La description

Il est utilisé pour obtenir une séquence de caractères et appelle le membre virtuel protégé xsgetn avec les mêmes arguments s et n.

Déclaration

Voici la déclaration de std :: basic_streambuf :: sgetn.

streamsize sgetn (char_type* s, streamsize n);

Paramètres

  • sPointeur vers un tableau dans lequel la séquence de caractères est copiée.

  • nNombre maximum de caractères à récupérer.

Valeur de retour

Il renvoie le nombre de caractères copiés.

Des exceptions

Basic guarantee - si une exception est levée, le tampon de flux est dans un état valide.

Courses de données

Il modifie jusqu'à tous les n premiers caractères du tableau pointé par s.

Exemple

L'exemple ci-dessous explique à propos de 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;
}