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;
}