basic_ifstream class template — Class template for file input streams
template <class charT, class traits = char_traits<charT> > class basic_ifstream : public basic_istream<charT,traits> { public: typedef charT char_type; typedef typename traits::int_type int_type; typedef typename traits::pos_type pos_type; typedef typename traits::off_type off_type; typedef traits traits_type; basic_ifstream( ); explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in); basic_filebuf<charT,traits>* rdbuf( ) const; bool is_open( ); void open(const char* s, ios_base::openmode mode = ios_base::in); void open(const char* s, ios_base::open_mode mode); void close( ); };
The basic_ifstream
class
template supports reading from named files using a basic_filebuf<charT
, traits>
object. (See <istream>
for a description of the
base-class template, basic_istream
.) In the following member
function descriptions, the file buffer object is assumed to be a
private data member with the name
buf
:
basic_ifstream
( )
Initializes the base class with basic_istream(&
buf
)
and initializes
buf
with its default
constructor.
explicit
basic_ifstream
(const
char*
filename, ios_base::openmode
mode
=
ios_base::in)
Initializes the base class and
buf
, then calls open(filename
, mode)
. If open
returns a null pointer, the
constructor calls setstate(failbit)
.
basic_filebuf<charT
,
traits>*
rdbuf
( )
const
Returns &
buf
.
bool
is_open
( )
Returns rdbuf( )->is_open(
)
.
void
open
(const
char*
filename, ios_base::openmode
mode
=
ios_base::in)
, void
open
(const
char*
filename,ios_base::open_mode
mode)
Calls rdbuf(
)->open(filename
, mode)
. If that function returns a
null pointer, open
calls
setstate(failbit)
. The
second form is deprecated. It has the same functionality as
the first form. See ios_base::openmode
in <ios>
for details.
void
close
( )
Calls rdbuf( )->close(
)
. If that function fails, close
calls setstate(failbit)
.