std::basic_ifstream - cppreference.com (original) (raw)
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:
Type | Definition |
std::ifstream | std::basic_ifstream<char> |
std::wifstream | std::basic_ifstream<wchar_t> |
Contents
- 1 Member types
- 2 Member functions
- 3 Non-member functions
- 4 Inherited from std::basic_istream
- 5 Inherited from std::basic_ios
- 6 Inherited from std::ios_base
[edit] Member types
Member type | Definition |
---|---|
char_type | CharT[edit] |
traits_type | Traits; the program is ill-formed if Traits::char_type is not CharT.[edit] |
int_type | Traits::int_type[edit] |
pos_type | Traits::pos_type[edit] |
off_type | Traits::off_type[edit] |
native_handle_type(C++26) | implementation-defined type that is TriviallyCopyable and semiregular[edit] |
[edit] Member functions
(constructor) | constructs the file stream (public member function) [edit] |
---|---|
(destructor)[virtual] (implicitly declared) | destructs the basic_ifstream and the associated buffer, closes the file (virtual public member function) [edit] |
operator=(C++11) | moves the file stream (public member function) [edit] |
swap(C++11) | swaps two file streams (public member function) [edit] |
rdbuf | returns the underlying raw file device object (public member function) [edit] |
native_handle(C++26) | returns the underlying implementation-defined handle (public member function) [edit] |
File operations | |
is_open | checks if the stream has an associated file (public member function) [edit] |
open | opens a file and associates it with the stream (public member function) [edit] |
close | closes the associated file (public member function) [edit] |
[edit] Non-member functions
Inherited from std::basic_istream
Member functions
Formatted input | |
---|---|
operator>> | extracts formatted data (public member function of std::basic_istream<CharT,Traits>) [edit] |
Unformatted input | |
get | extracts characters (public member function of std::basic_istream<CharT,Traits>) [edit] |
peek | reads the next character without extracting it (public member function of std::basic_istream<CharT,Traits>) [edit] |
unget | unextracts a character (public member function of std::basic_istream<CharT,Traits>) [edit] |
putback | puts a character into input stream (public member function of std::basic_istream<CharT,Traits>) [edit] |
getline | extracts characters until the given character is found (public member function of std::basic_istream<CharT,Traits>) [edit] |
ignore | extracts and discards characters until the given character is found (public member function of std::basic_istream<CharT,Traits>) [edit] |
read | extracts blocks of characters (public member function of std::basic_istream<CharT,Traits>) [edit] |
readsome | extracts already available blocks of characters (public member function of std::basic_istream<CharT,Traits>) [edit] |
gcount | returns number of characters extracted by last unformatted input operation (public member function of std::basic_istream<CharT,Traits>) [edit] |
Positioning | |
tellg | returns the input position indicator (public member function of std::basic_istream<CharT,Traits>) [edit] |
seekg | sets the input position indicator (public member function of std::basic_istream<CharT,Traits>) [edit] |
Miscellaneous | |
sync | synchronizes with the underlying storage device (public member function of std::basic_istream<CharT,Traits>) [edit] |
Member classes
| | implements basic logic for preparation of the stream for input operations (public member class of std::basic_istream<CharT,Traits>) [edit] | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
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 | |
---|---|
good | checks if no error has occurred i.e. I/O operations are available (public member function of std::basic_ios<CharT,Traits>) [edit] |
eof | checks if end-of-file has been reached (public member function of std::basic_ios<CharT,Traits>) [edit] |
fail | checks if an error has occurred (public member function of std::basic_ios<CharT,Traits>) [edit] |
bad | checks if a non-recoverable error has occurred (public member function of std::basic_ios<CharT,Traits>) [edit] |
operator! | checks if an error has occurred (synonym of fail()) (public member function of std::basic_ios<CharT,Traits>) [edit] |
operator bool | checks if no error has occurred (synonym of |
rdstate | returns state flags (public member function of std::basic_ios<CharT,Traits>) [edit] |
setstate | sets state flags (public member function of std::basic_ios<CharT,Traits>) [edit] |
clear | modifies state flags (public member function of std::basic_ios<CharT,Traits>) [edit] |
Formatting | |
copyfmt | copies formatting information (public member function of std::basic_ios<CharT,Traits>) [edit] |
fill | manages the fill character (public member function of std::basic_ios<CharT,Traits>) [edit] |
Miscellaneous | |
exceptions | manages exception mask (public member function of std::basic_ios<CharT,Traits>) [edit] |
imbue | sets the locale (public member function of std::basic_ios<CharT,Traits>) [edit] |
rdbuf | manages associated stream buffer (public member function of std::basic_ios<CharT,Traits>) [edit] |
tie | manages tied stream (public member function of std::basic_ios<CharT,Traits>) [edit] |
narrow | narrows characters (public member function of std::basic_ios<CharT,Traits>) [edit] |
widen | widens characters (public member function of std::basic_ios<CharT,Traits>) [edit] |
Inherited from std::ios_base
Member functions
Formatting | |
---|---|
flags | manages format flags (public member function of std::ios_base) [edit] |
setf | sets specific format flag (public member function of std::ios_base) [edit] |
unsetf | clears specific format flag (public member function of std::ios_base) [edit] |
precision | manages decimal precision of floating point operations (public member function of std::ios_base) [edit] |
width | manages field width (public member function of std::ios_base) [edit] |
Locales | |
imbue | sets locale (public member function of std::ios_base) [edit] |
getloc | returns current locale (public member function of std::ios_base) [edit] |
Internal extensible array | |
xalloc[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) [edit] |
iword | resizes the private storage if necessary and access to the long element at the given index (public member function of std::ios_base) [edit] |
pword | resizes the private storage if necessary and access to the void* element at the given index (public member function of std::ios_base) [edit] |
Miscellaneous | |
register_callback | registers event callback function (public member function of std::ios_base) [edit] |
sync_with_stdio[static] | sets whether C++ and C I/O libraries are interoperable (public static member function of std::ios_base) [edit] |
Member classes | |
failure | stream exception (public member class of std::ios_base) [edit] |
Init | initializes standard stream objects (public member class of std::ios_base) [edit] |
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_fstream_native_handle | 202306L | (C++26) | native handles support |
[edit] Example
#include #include #include 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