# std::basic_ostream::seekp

From cppreference.com
< cpp‎ | io‎ | basic ostream

basic_ostream& seekp( pos_type pos ); | (1) |
basic_ostream& seekp( off_type off, std::ios_base::seekdir dir); | (2) |

Sets the output position indicator of the current associated `streambuf` object.

Behaves as `UnformattedOutputFunction` (except without actually performing output). After constructing and checking the sentry object, | (since C++11)

1) sets the output position indicator to absolute (relative to the beginning of the file) value `pos` by calling rdbuf()->pubseekpos(pos, std::ios_base::out). If the call returns (pos_type)-1, executes setstate(failbit).
2) sets the output position indicator to offset `off` relative to `dir` by calling rdbuf()->pubseekoff(off, dir, std::ios_base::out).

Does not report errors. | (until C++14)
If the call returns (pos_type)-1, executes setstate(failbit). | (since C++14)

### Parameters

pos | - | absolute position to set the output position indicator to.
off | - | relative position to set the output position indicator to.

dir

-

defines base position to apply the relative offset to. It can be one of the following constants:

Constant | Explanation
`beg` | the beginning of a stream
`end` | the ending of a stream
`cur` | the current position of stream position indicator

### Return value

*this

### Exceptions

1) May throw std::ios_base::failure in case of failure, if exceptions() & failbit != 0.
2)

Does not throw unless rdbuf()->pubseekoff() throws | (until C++14)
May throw std::ios_base::failure in case of failure, if exceptions() & failbit != 0. | (since C++14)

### Example

Run this code

    #include <sstream>
    #include <iostream>

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

Output:

    Hello, World!

### See also

tellp | returns the output position indicator (public member function)
tellg | returns the input position indicator (public member function of `std::basic_istream`)
seekg | sets the input position indicator (public member function of `std::basic_istream`)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_ostream/seekp&oldid=68854"