它用於獲取/設定流緩衝區。 如果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;
}