Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
IOstream Library
manipulators
classes:
filebuf
fstream
ifstream
ios
iostream
ios_base
istream
istringstream
ofstream
ostream
ostringstream
streambuf
stringbuf
stringstream
objects:
cerr
cin
clog
cout
types:
fpos
streamoff
streampos
streamsize
ifstream
ifstream::ifstream
member functions:
ifstream::close
ifstream::is_open
ifstream::open
ifstream::rdbuf


ifstream::rdbuf

public member function
filebuf* rdbuf ( ) const;

Get the associated filebuf object

Returns a pointer to the filebuf object associated with the stream.

Parameters

none

Return Value

A pointer to the filebuf object associated with the stream.
Notice that for any successfully constructed ifstream object this pointer is never a null pointer, even if no files have been opened or if the stream is unbuffered.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// read file data using associated buffer's members
#include <iostream>
#include <fstream>
using namespace std;
int main () {
  filebuf *pbuf;
  ifstream filestr;
  long size;
  char * buffer;
  filestr.open ("test.txt");
  // get pointer to associated buffer object
  pbuf=filestr.rdbuf();
  // get file size using buffer's members
  size=pbuf->pubseekoff (0,ios::end,ios::in);
  pbuf->pubseekpos (0,ios::in);
  // allocate memory to contain file data
  buffer=new char[size];
  // get file data  
  pbuf->sgetn (buffer,size);
  filestr.close();
  // write content to stdout
  cout.write (buffer,size);
  free(buffer);
  return 0;
}


This is an elaborate way to read the contents of a file by using the associated filebuf object's members.

Basic template member declaration

( basic_ifstream<charT,traits,Allocator> )
 
basic_filebuf<charT,traits,Allocator> * rdbuf () const;


See also