모두의 코드
C++ 레퍼런스 - ios::rdbuf 함수

작성일 : 2012-03-25 이 글은 3141 번 읽혔습니다.

아직 C++ 에 친숙하지 않다면 씹어먹는 C++ 은 어때요?

ios::rdbuf

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

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

인자

sb

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

리턴값

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

실행 예제

/*이 예제는http://www.cplusplus.com/reference/iostream/ios/rdbuf/에서
 * 가져왔습니다.*/
#include <fstream>
#include <iostream>

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 개 있습니다!
프로필 사진 없음
강좌에 관련 없이 궁금한 내용은 여기를 사용해주세요