C ++ streambuf - pubseekpos

Descrizione

Viene utilizzato per impostare il puntatore di posizione interno sulla posizione assoluta e chiama il membro virtuale protetto seekpos con gli stessi argomenti pos e which.

Dichiarazione

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

pos_type pubseekpos (pos_type pos, ios_base::openmode which = ios_base::in | ios_base::out);

Parametri

off - È una nuova posizione assoluta per il puntatore di posizione.

Valore di ritorno

Restituisce il nuovo valore di posizione del puntatore di posizione modificato.

Eccezioni

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

Gare di dati

Modifica l'oggetto buffer del flusso.

Esempio

Nell'esempio seguente viene spiegato std :: basic_streambuf :: pubseekpos.

#include <iostream>     
#include <fstream>      

int main () {

   std::fstream filestr ("test.txt");
   if (filestr) {
      std::streambuf* pbuf = filestr.rdbuf();
      long size = pbuf->pubseekoff(0,filestr.end);  
      if (size>20) {
         char buffer[11];

         pbuf->pubseekpos(10);

         pbuf->sgetn (buffer,10);

         buffer[10]=0;
         std::cout << buffer << '\n';
      }
      filestr.close();
   }
   return 0;
}