C ++ streambuf - Pubseekpos

La description

Il est utilisé pour définir le pointeur de position interne sur la position absolue et appelle le membre virtuel protégé seekpos avec les mêmes arguments pos et which.

Déclaration

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

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

Paramètres

off - Il s'agit d'une nouvelle position absolue pour le pointeur de position.

Valeur de retour

Il renvoie la nouvelle valeur de position du pointeur de position modifié.

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 l'objet de tampon de flux.

Exemple

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