std:: basic_ifstream
Defined in header
<fstream>
|
||
template
<
class
CharT,
|
||
The class template
basic_ifstream
implements high-level input operations on file-based streams. It interfaces a file-based streambuffer (
std::basic_filebuf
) with the high-level interface of (
std::basic_istream
).
A typical implementation of
std::basic_ifstream
holds only one non-derived data member: an instance of
std::
basic_filebuf
<
CharT, Traits
>
.
Inheritance diagram
Several typedefs for common character types are provided:
Defined in header
<fstream>
|
|
Type | Definition |
std::ifstream
|
std :: basic_ifstream < char > |
std::wifstream
|
std :: basic_ifstream < wchar_t > |
Member types
Member type | Definition |
char_type
|
CharT
|
traits_type
|
Traits
; the program is ill-formed if
Traits::char_type
is not
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
native_handle_type
(C++26)
|
implementation-defined
type that is
TriviallyCopyable
and
semiregular
|
Member functions
constructs the file stream
(public member function) |
|
(destructor)
[virtual]
(implicitly declared)
|
destructs the
basic_ifstream
and the associated buffer, closes the file
(virtual public member function) |
(C++11)
|
moves the file stream
(public member function) |
(C++11)
|
swaps two file streams
(public member function) |
returns the underlying raw file device object
(public member function) |
|
(C++26)
|
returns the underlying implementation-defined handle
(public member function) |
File operations |
|
checks if the stream has an associated file
(public member function) |
|
opens a file and associates it with the stream
(public member function) |
|
closes the associated file
(public member function) |
Non-member functions
(C++11)
|
specializes the
std::swap
algorithm
(function template) |
Inherited from std:: basic_istream
Member functions
Formatted input |
|
extracts formatted data
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
Unformatted input |
|
extracts characters
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
reads the next character without extracting it
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
unextracts a character
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
puts a character into input stream
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
extracts characters until the given character is found
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
extracts and discards characters until the given character is found
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
extracts blocks of characters
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
extracts already available blocks of characters
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
returns number of characters extracted by last unformatted input operation
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
Positioning |
|
returns the input position indicator
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
sets the input position indicator
(public member function of
std::basic_istream<CharT,Traits>
)
|
|
Miscellaneous |
|
synchronizes with the underlying storage device
(public member function of
std::basic_istream<CharT,Traits>
)
|
Member classes
implements basic logic for preparation of the stream for input operations
(public member class of
std::basic_istream<CharT,Traits>
)
|
Inherited from std:: basic_ios
Member types
Member type | Definition |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
Member functions
State functions |
|
checks if no error has occurred i.e. I/O operations are available
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
checks if end-of-file has been reached
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
checks if an error has occurred
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
checks if a non-recoverable error has occurred
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
checks if an error has occurred (synonym of
fail()
)
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
checks if no error has occurred (synonym of
!
fail()
)
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
returns state flags
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
sets state flags
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
modifies state flags
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
Formatting |
|
copies formatting information
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
manages the fill character
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
Miscellaneous |
|
manages exception mask
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
sets the locale
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
manages associated stream buffer
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
manages tied stream
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
narrows characters
(public member function of
std::basic_ios<CharT,Traits>
)
|
|
widens characters
(public member function of
std::basic_ios<CharT,Traits>
)
|
Inherited from std:: ios_base
Member functions
Formatting |
|
manages format flags
(public member function of
std::ios_base
)
|
|
sets specific format flag
(public member function of
std::ios_base
)
|
|
clears specific format flag
(public member function of
std::ios_base
)
|
|
manages decimal precision of floating point operations
(public member function of
std::ios_base
)
|
|
manages field width
(public member function of
std::ios_base
)
|
|
Locales |
|
sets locale
(public member function of
std::ios_base
)
|
|
returns current locale
(public member function of
std::ios_base
)
|
|
Internal extensible array |
|
[static]
|
returns a program-wide unique integer that is safe to use as index to
pword()
and
iword()
(public static member function of
std::ios_base
)
|
resizes the private storage if necessary and access to the
long
element at the given index
(public member function of
std::ios_base
)
|
|
resizes the private storage if necessary and access to the
void
*
element at the given index
(public member function of
std::ios_base
)
|
|
Miscellaneous |
|
registers event callback function
(public member function of
std::ios_base
)
|
|
[static]
|
sets whether C++ and C I/O libraries are interoperable
(public static member function of
std::ios_base
)
|
Member classes |
|
stream exception
(public member class of
std::ios_base
)
|
|
initializes standard stream objects
(public member class of
std::ios_base
)
|
Member types and constants |
|||||||||||||||||||||||||||||||||||||||
Type | Explanation | ||||||||||||||||||||||||||||||||||||||
stream open mode type
The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
formatting flags type
The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
state of the stream type
The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
seeking direction type
The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
specifies event type
(enum) |
|||||||||||||||||||||||||||||||||||||||
callback function type
(typedef) |
Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L | (C++26) | native handles support |
Example
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "Test.b"; // prepare a file to read double d = 3.14; std::ofstream(filename, std::ios::binary) .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc"; // open file for reading std::ifstream istrm(filename, std::ios::binary); if (!istrm.is_open()) std::cout << "failed to open " << filename << '\n'; else { double d; istrm.read(reinterpret_cast<char*>(&d), sizeof d); // binary input int n; std::string s; if (istrm >> n >> s) // text input std::cout << "read back from file: " << d << ' ' << n << ' ' << s << '\n'; } }
Output:
read back from file: 3.14 123 abc