Namespaces
Variants

std::basic_ostream<CharT,Traits>:: seekp

From cppreference.net
basic_ostream & seekp ( pos_type pos ) ;
(1)
basic_ostream & seekp ( off_type off, std:: ios_base :: seekdir dir ) ;
(2)

Définit l'indicateur de position de sortie de l'objet streambuf associé actuel.

Se comporte comme une UnformattedOutputFunction (sans effectuer réellement de sortie). Après avoir construit et vérifié l'objet sentinelle,

(since C++11)
1) si fail ( ) ! = true , positionne l'indicateur de position de sortie à la valeur absolue (relative au début du fichier) pos en appelant rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: out ) . En cas d'échec, appelle setstate ( std:: ios_base :: failbit ) .
2) si fail ( ) ! = true , positionne l'indicateur de position de sortie à l'offset off relatif à dir en appelant rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: out ) . En cas d'échec, appelle setstate ( std:: ios_base :: failbit ) .

Table des matières

Paramètres

pos - position absolue pour définir l'indicateur de position de sortie
off - position relative (positive ou négative) pour définir l'indicateur de position de sortie
dir - définit la position de base à laquelle appliquer le décalage relatif. Il peut s'agir de l'une des constantes suivantes :
Constante Explication
beg le début d'un flux
end la fin d'un flux
cur la position actuelle de l'indicateur de position du flux

Valeur de retour

* this

Exceptions

1,2) Peut lever std::ios_base::failure en cas d'échec, si exceptions ( ) & failbit ! = 0 .

Exemple

#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream os("hello, world");
    os.seekp(7);
    os << 'W';
    os.seekp(0, std::ios_base::end);
    os << '!';
    os.seekp(0);
    os << 'H';
    std::cout << os.str() << '\n';
}

Sortie :

Hello, World!

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 129 C++98 il n'y avait aucun moyen d'indiquer un échec positionne failbit en cas d'échec
LWG 136 C++98 seekp pouvait positionner le flux d'entrée positionne uniquement le flux de sortie
LWG 537 C++98 1. le type de pos était pos_type&
2. le type de off était off_type&
1. corrigé en pos_type
2. corrigé en off_type
LWG 2341 C++98 la résolution de LWG issue 129 pour la surcharge (2) a été supprimée restaurée

Voir aussi

renvoie l'indicateur de position de sortie
(fonction membre publique)
renvoie l'indicateur de position d'entrée
(fonction membre publique de std::basic_istream<CharT,Traits> )
définit l'indicateur de position d'entrée
(fonction membre publique de std::basic_istream<CharT,Traits> )