Partager via


basic_filebuf::seekpos

Tente de modifier les positions actuelles pour les flux de données contrôlés.

virtual pos_type seekpos( 
   pos_type _Sp, 
   ios_base::openmode _Which = ios_base::in | ios_base::out 
);

Paramètres

  • _Sp
    La position à rechercher.

  • _Which
    Spécifie le mode pour la position du pointeur. La valeur par défaut est de vous permettre de modifier et lire les positions.

Valeur de retour

Si le pointeur de fichier fp est un pointeur null, la fonction échoue. Sinon, il tente de modifier la position du flux en appelant fsetpos(fp, &fposn), où fposn est l'objet fpos_t stocké dans pos. Si la fonction réussit, la fonction retourne pos. Sinon, elle retourne une position de flux invalide. Pour déterminer si la position du flux est invalide, comparez la valeur de retour avec pos_type(off_type(-1)).

Notes

La fonction membre virtuelle protégée s'efforce de modifier les positions actuelles pour les flux de données contrôlés. Pour un objet de la classe basic_filebuf<Elem, Tr>, une position du flux peut être représenté par un objet de type fpos_t, qui enregistre un décalage et toute information d'état nécessaire pour analyser un large flux de données. Le décalage zéro indique le premier élément du flux de données. (Un objet de type pos_type contient au moins moins un objet fpos_t .)

Pour un fichier ouvert pour la lecture et l'écriture, les deux flux de sortie et d'entrée sont positionnés en tandem. Pour basculer entre l'insertion et l'extraction, vous devez faire appel soit à pubseekoff ou à pubseekpos. Les appels à pubseekoff (et par conséquent à seekoff) ont plusieurs limitations pour les flux de texte, flux binaire, et les larges lux de données.

Pour un flux large, si des insertions se sont produites depuis que le flux de données a été ouvert, ou depuis le dernier appel à streampos, la fonction appelle un dépassement de capacité. Il insère n'importe quelle séquence nécessaire pour restaurer l'état de conversion initial, en utilisant la facettefac  de conversion de fichier pour appeler fac.unshift comme nécessaire. Chaque élément byte de type charainsi produit est enregistré dans le flux associé indiqué par le pointeur de fichier fp comme par des appels consécutifs du formulaire fputc(byte, fp). Si l'appel à fac.unshift ou à toute écriture échoue, la fonction ne réussit pas.

Configuration requise

En-tête : <fstream>

Espace de noms : std

Voir aussi

Référence

basic_filebuf, classe

iostream, programmation

iostreams, conventions