
- 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++ IOS::set_rdbuf() function
The C++ std::ios::set_rdbuf() function is used to set a new stream buffer for an input/output stream object. It allows redirection of the I/O operations to a different buffer, enabling the custom handling of I/O operations.
Syntax
Following is the syntax for std::ios::set_rdbuf() function.
void set_rdbuf (streambuf* sb);
Parameters
- sb − It indicates the pointer to a streambuf object(This shall not be a null pointer).
Return Value
This function does not return anything
Exceptions
If an exception is thrown, the stream is in a valid state.
Data races
Modifies the stream object.
Concurrent access to the same stream object may cause data races.
Example
Let's look at the following example, where we are going to redirect std::cout to std::ostringstream.
#include <iostream> #include <sstream> int main() { std::ostringstream x; std::streambuf* a = std::cout.rdbuf(x.rdbuf()); std::cout << "Welcome To, TutorialsPoint." << std::endl; std::cout.rdbuf(a); std::cout << " " << x.str() << std::endl; return 0; }
Output
Output of the above code is as follows −
Welcome To, TutorialsPoint.
Example
Consider the following example, where we are going to redirect std::cin to a std::istringstream.
#include <iostream> #include <sstream> int main() { std::istringstream x("1 2.12 POLO"); std::streambuf* y = std::cin.rdbuf(x.rdbuf()); int a; double b; std::string c; std::cin >> a >> b >> c; std::cin.rdbuf(y); std::cout << " " << a << ", " << b << ", " << c << std::endl; return 0; }
Output
Following is the output of the above code −
1, 2.12, POLO
ios.htm