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)

Establece el indicador de posición de salida del objeto streambuf asociado actual.

Se comporta como UnformattedOutputFunction (excepto sin realizar realmente la salida). Después de construir y verificar el objeto sentry,

(since C++11)
1) si fail ( ) ! = true , establece el indicador de posición de salida al valor absoluto (relativo al inicio del archivo) pos llamando a rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: out ) . En caso de fallo, llama a setstate ( std:: ios_base :: failbit ) .
2) si fail ( ) ! = true , establece el indicador de posición de salida al desplazamiento off relativo a dir llamando a rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: out ) . En caso de fallo, llama a setstate ( std:: ios_base :: failbit ) .

Contenidos

Parámetros

pos - posición absoluta para establecer el indicador de posición de salida
off - posición relativa (positiva o negativa) para establecer el indicador de posición de salida
dir - define la posición base para aplicar el desplazamiento relativo. Puede ser una de las siguientes constantes:
Constante Explicación
beg el inicio de un flujo
end el final de un flujo
cur la posición actual del indicador de posición del flujo

Valor de retorno

* this

Excepciones

1,2) Puede lanzar std::ios_base::failure en caso de fallo, si exceptions ( ) & failbit ! = 0 .

Ejemplo

#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';
}

Salida:

Hello, World!

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 129 C++98 no había forma de indicar un fallo establece failbit en caso de fallo
LWG 136 C++98 seekp podía establecer el flujo de entrada solo establece el flujo de salida
LWG 537 C++98 1. el tipo de pos era pos_type&
2. el tipo de off era off_type&
1. corregido a pos_type
2. corregido a off_type
LWG 2341 C++98 la resolución de LWG issue 129 para la sobrecarga (2) fue eliminada restaurada

Véase también

devuelve el indicador de posición de salida
(función miembro pública)
devuelve el indicador de posición de entrada
(función miembro pública de std::basic_istream<CharT,Traits> )
establece el indicador de posición de entrada
(función miembro pública de std::basic_istream<CharT,Traits> )