C ++ streambuf - pubseekpos

Descrição

É usado para definir o ponteiro de posição interna para a posição absoluta e chama o membro virtual protegido seekpos com os mesmos argumentos pos e which.

Declaração

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

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

Parâmetros

off - É uma nova posição absoluta para o ponteiro de posição.

Valor de retorno

Ele retorna o novo valor de posição do ponteiro de posição modificado.

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 o objeto de buffer de fluxo.

Exemplo

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