添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • C 레퍼런스
  • C++ 레퍼런스
  • X86-64 명령어 레퍼런스
  • 자료 구조
  • 프로그래밍
  • 아직 C++ 에 친숙하지 않다면 씹어먹는 C++ 은 어때요?

    ios::rdbuf

    streambuf* rdbuf() const;
    streambuf* rdbuf(streambuf* sb);
    

    연관된 스트림 버퍼를 설정하거나 얻는다. 첫번째 형태의 함수는 연관된 스트림 버퍼를 리턴한다. 두 번째 형태의 경우 현재 스트림을 sb 와 연관 시키고 이전에 연관되어 있었던 스트림 버퍼를 리턴한다. 이 때 상태 플래그는 goodbit 로 설정된다.

    인자

    sb

    연관시킬 스트림 버퍼를 가리키는 포인터

    리턴값

    이전에 연관되어 있었던 스트림 버퍼

    실행 예제

    /*이 예제는http://www.cplusplus.com/reference/iostream/ios/rdbuf/에서
     * 가져왔습니다.*/
    #include <iostream>
    #include <fstream>
    using namespace std;
    int main() {
      streambuf *psbuf, *backup;
      ofstream filestr;
      filestr.open("test.txt");
      backup = cout.rdbuf();    // 현재 cout 의 스트림 버퍼를 백업한다.
      psbuf = filestr.rdbuf();  // 파일 스트림 버퍼를 얻는다
      cout.rdbuf(psbuf);  // 파일 스트림 버퍼를 cout 에 연관시킨다
      cout << "This is written to the file";  // 따라서 이것은 파일에 쓰여진다.
      out.rdbuf(backup);  // 원래 cout 의 스트림 버퍼로 돌아간다.
      filestr.close();
      return 0;
    

    실행 결과

    파일에 잘 출력된 것을 알 수 있다.

    템플릿 멤버 정의

    (basic_ios<charT, traits>)
      basic_streambuf<charT, traits>* rdbuf() const;
    basic_streambuf<charT, traits>* rdbuf(basic_streambuf<charT, traits> sb);
    

    연관된 자료

    • streambuf : 스트림의 기반(base) 버퍼 클래스

    2 개 있습니다!