Un flot de sortie pointant sur un fichier ou une organisation du même genre possède un indicateur de position. Cet indicateur marque lemplacement de la prochaine lecture ; il avance à chaque écriture du nombre de caractères écrits.
On peut connaître la valeur de cet indicateur de position par la fonction membre streampos tellp(void)
; le type streampos
est identique à long
.
Il y a deux moyens de modifier cet indicateur, autrement quen faisant des écritures. Le premier consiste à appeler la méthode ostream& seekp(streampos)
avec la nouvelle valeur souhaitée. Le second consiste à donner un déplacement par rapport à une position de référence (type streamoff
, qui est aussi égal à long
). On utilise pour cela ostream& seekp(streamoff, seek_dir
). Le type seek_dir
est lénumération de ios
décrite précédemment et contenant trois éléments :
ios::beg
: référence = début du fichier ios::cur
: référence = position courante ios::end
: référence = fin du fichier. Selon les cas, le déplacement est ajouté à 0, à la position courante, ou au nombre de caractères du fichier pour obtenir la nouvelle position. Par exemple :
ofstream fl;// ...fl.seekp(-10, ios::cur);
fait reculer lindicateur de position de dix caractères.
Précédent | Sommaire | Suivant |