Spec-Zone.ru › C++

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

См. также

set_rdbuf
заменяет rdbuf, не сбрасывая его состояние ошибки
(защищённая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ios/rdbuf

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API