io::rdbuf()函數

它用於獲取/設置流緩衝區。 如果sb是一個空指針,函數會自動設置badbit錯誤狀態標誌(如果成員異常已經傳遞badbit,它可能會拋出異常)。

聲明

以下是ios::rdbuf函數的聲明。

get (1)    streambuf* rdbuf() const;
set (2)    streambuf* rdbuf (streambuf* sb);

參數

  • sb − 指向streambuf對象的指針。

返回值

指向與調用前流相關聯的流緩衝區對象的指針。

示例

下面的例子中演示了ios::rdbuf函數應用。

#include <iostream>     
#include <fstream>      

int main () {
  std::streambuf *psbuf, *backup;
  std::ofstream filestr;
  filestr.open ("test.txt");

  backup = std::cout.rdbuf();     

  psbuf = filestr.rdbuf();        
  std::cout.rdbuf(psbuf);         

  std::cout << "This is written to the file";

  std::cout.rdbuf(backup);        

  filestr.close();

  return 0;
}