C ++ streambuf - sgetn

Descrizione

Viene utilizzato per ottenere una sequenza di caratteri e chiama il membro virtuale protetto xsgetn con gli stessi argomenti se n.

Dichiarazione

Di seguito è riportata la dichiarazione per std :: basic_streambuf :: sgetn.

streamsize sgetn (char_type* s, streamsize n);

Parametri

  • sPuntatore a una matrice in cui viene copiata la sequenza di caratteri.

  • nNumero massimo di caratteri da recuperare.

Valore di ritorno

Restituisce il numero di caratteri copiati.

Eccezioni

Basic guarantee - se viene generata un'eccezione, il buffer del flusso è in uno stato valido.

Gare di dati

Modifica fino a tutti i primi n caratteri dell'array puntato da s.

Esempio

Nell'esempio seguente viene illustrato lo 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;
}