C++/Library 2021. 3. 24. 10:43

출력 스트림 끊기

  • <iostream> 라이브러리 사용

  • std::cout.rdbuf(streambuf *)

    <iosfwd>

    using streambuf     = basic_streambuf<char, char_traits<char>>;

    <ios>

    using _Mysb       = basic_streambuf<_Elem, _Traits>;
    
    ...
    
    _Mysb* __CLR_OR_THIS_CALL rdbuf(_Mysb* _Strbuf) { // set stream buffer pointer
        _Mysb* _Oldstrbuf = _Mystrbuf;
        _Mystrbuf         = _Strbuf;
        clear();
        return _Oldstrbuf;
    }
    • 인자로 입력한 stream buffer pointer를 출력 스트림으로 지정한다.

    • 예제

      #include <iostream>
      
      using namespace std;
      
      int            main()
      {
        streambuf* orig_buf = cout.rdbuf();
        cout.rdbuf(NULL);
      
        cout << "Hello ";
      
        cout.rdbuf(orig_buf);
      
        cout << "World\n";
      }
      
      /* stdout
      World
      */

'C++ > Library' 카테고리의 다른 글

C++ unique_ptr  (0) 2021.03.24
C++ std::move  (0) 2021.03.24
C++ std::exception  (0) 2021.03.22
C++ reference_wrapper  (0) 2021.03.21
C++ IntArray  (0) 2021.03.19