它用于獲取/設(shè)置流緩沖區(qū)。 如果sb
是一個(gè)空指針,函數(shù)會(huì)自動(dòng)設(shè)置badbit
錯(cuò)誤狀態(tài)標(biāo)志(如果成員異常已經(jīng)傳遞badbit
,它可能會(huì)拋出異常)。
以下是ios::rdbuf
函數(shù)的聲明。
get (1) streambuf* rdbuf() const;
set (2) streambuf* rdbuf (streambuf* sb);
sb
? 指向streambuf
對(duì)象的指針。指向與調(diào)用前流相關(guān)聯(lián)的流緩沖區(qū)對(duì)象的指針。
下面的例子中演示了ios::rdbuf
函數(shù)應(yīng)用。
#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;
}