C++ streambuf - pubseekpos



Description

It is used to set internal position pointer to absolute position and calls the protected virtual member seekpos with the same arguments pos and which.

Declaration

Following is the declaration for std::basic_streambuf::pubseekpos.

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

Parameters

off − It is a new absolute position for the position pointer.

Return Value

It returns the new position value of the modified position pointer.

Exceptions

Basic guarantee − if an exception is thrown, the stream buffer is in a valid state.

Data races

It modifies the stream buffer object.

Example

In below example explains about 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;
}
streambuf.htm
Advertisements