Changement de position

Un flot de sortie pointant sur un fichier ou une organisation du même genre possède un indicateur de position. Cet indicateur marque l’emplacement 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 qu’en 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 :

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 l’indicateur de position de dix caractères.

Précédent Précédent Sommaire Sommaire Suivant Suivant