std::basic_ios<CharT,Traits>::rdbuf
std::basic_streambuf<CharT, Traits>* rdbuf() const; | (1) | |
std::basic_streambuf<CharT, Traits>* rdbuf( std::basic_streambuf<CharT, Traits>* sb ); | (2) |
Управляет связанным буфером потока.
1) Возвращает связанный буфер потока. Если связанный буфер потока отсутствует, возвращает нулевой указатель.
2) Устанавливает
sb в качестве связанного буфера потока. Состояние ошибки сбрасывается вызовом clear(). Возвращает буфер потока, связанный до выполнения операции. Если связанный буфер потока отсутствует, возвращает нулевой указатель.Параметры
| sb | - | Буфер потока, который следует связать. |
Возвращаемое значение
Связанный буфер потока или нулевой указатель, если связанный буфер потока отсутствовал.
Исключения
Могут быть выброшены исключения, определяемые реализацией.
Пример
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream local;
auto cout_buff = std::cout.rdbuf(); // save pointer to std::cout buffer
std::cout.rdbuf(local.rdbuf()); // substitute internal std::cout buffer with
// buffer of 'local' object
// now std::cout work with 'local' buffer
// you don't see this message
std::cout << "some message";
// go back to old buffer
std::cout.rdbuf(cout_buff);
// you will see this message
std::cout << "back to default buffer\n";
// print 'local' content
std::cout << "local content: " << local.str() << "\n";
}
Вывод:
back to default buffer local content: some message
См. также
заменяет rdbuf, не сбрасывая его состояние ошибки (защищённая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ios/rdbuf