
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Ostream::seekp() function
The C++ std::ostream::seekp() function is used to move the output position indicator of a stream. It allows repositioning the write pointer within the stream, enabling data to be written to specific locations. This function can take either an absolute position or an offset relative to a given position (beginning, end, or current).
Syntax
Following is the syntax for std::ostream::seekp() function.
ostream& seekp (streampos pos); or ostream& seekp (streamoff off, ios_base::seekdir way);
Parameters
- pos − It indicates the new absolute position within the stream.
- off − It indicates the offset value.
- way − It indicates the object of type ios_base::seekdir.
Return Value
It returns the ostream object (*this).
Exceptions
If an exception is thrown, the object is in a valid state.
Data races
Modifies the stream object and concurrent access to the same stream object may cause data races.
Example
In the following example, we are going to consider the basic usage of the seekp() function.
#include <iostream> #include <sstream> int main() { std::ostringstream a; a << "W LCOME"; a.seekp(1); a << "E"; std::cout << a.str() << std::endl; return 0; }
Output
Output of the above code is as follows −
WELCOME
Example
Consider the following example, where we are going to use the seekp() to overwrite the part of string.
#include <iostream> #include <sstream> int main() { std::ostringstream a; a << "1231114567"; a.seekp(3); a << "XYZ"; std::cout << a.str() << std::endl; return 0; }
Output
Following is the output of the above code −
123XYZ4567
Example
Let's look at the following example, where we are going to append the data to the end.
#include <iostream> #include <sstream> int main() { std::ostringstream a; a << "Welcone To"; a.seekp(0, std::ios::end); a << " TutorialsPoint"; std::cout << a.str() << std::endl; return 0; }
Output
If we run the above code it will generate the following output −
Welcone To TutorialsPoint