std::basic_ifstream
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Input/output library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Print functions (C++23)
 Buffers
(C++23)
(C++98/26*)
(C++20)
 Streams
 Abstractions
 File I/O
basic_ifstream
 String I/O
 Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
 Synchronized Output
(C++20)
 Types
 Error category interface
(C++11)
(C++11)
std::basic_ifstream
 
 
 
 
 Member functions
(C++11)
(C++11)
(C++26)
 File operations
 Non-member functions
(C++11)
Defined in header 
 
 
<fstream> 
 template< 
 
 
    class CharT, 
    class Traits = std::char_traits <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>.
std-basic ifstream-inheritance.svg
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>
Contents
[edit] Member types
 Member type
 Definition
native_handle_type(C++26)
 implementation-defined type that is TriviallyCopyable and semiregular [edit] 
[edit] Member functions
(destructor)
[virtual] (implicitly declared)
basic_ifstream and the associated buffer, closes the file (virtual public member function) [edit]
File operations
[edit] Non-member functions
Inherited from std::basic_istream
Member functions
Formatted input
Unformatted input
 
 reads the next character without extracting it 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 puts a character into input stream 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 extracts characters until the given character is found 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 extracts and discards characters until the given character is found 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 extracts already available blocks of characters 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 returns number of characters extracted by last unformatted input operation 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
Positioning
 
 returns the input position indicator 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
 
 sets the input position indicator 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
Miscellaneous
 
 synchronizes with the underlying storage device 
(public member function of
(public member function of
std::basic_istream<CharT,Traits>) [edit] 
Member classes
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
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if end-of-file has been reached 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if a non-recoverable error has occurred 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if an error has occurred (synonym of fail() ) 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if no error has occurred (synonym of 
(public member function of
!fail() ) (public member function of
std::basic_ios<CharT,Traits>) [edit] 
Formatting
Miscellaneous
Inherited from std::ios_base
Member functions
Formatting
 
 manages decimal precision of floating point operations 
(public member function of
(public member function of
std::ios_base) [edit] 
Locales
Internal extensible array
[static]
(public static member function of
std::ios_base) [edit] 
 
 resizes the private storage if necessary and access to the long element at the given index 
(public member function of
(public member function of
std::ios_base) [edit] 
 
 resizes the private storage if necessary and access to the void* element at the given index 
(public member function of
(public member function of
std::ios_base) [edit] 
Miscellaneous
[static]
(public static member function of
std::ios_base) [edit] 
Member classes
Member types and constants
 Type
 Explanation
 
 stream open mode type
(typedef) [edit]
 
 
 formatting flags type
(typedef) [edit]  
 
 
 state of the stream type
(typedef) [edit]  
 
 
 seeking direction type
(typedef) [edit]  
 
 
 specifies event type 
(enum) [edit]  
 
 
 callback function type 
(typedef) [edit]  
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 internal
 internal adjustment (adds fill characters to the internal designated point): see std::internal [edit] 
 scientific
 generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific [edit] 
 fixed
 generate floating point types using fixed notation, or hex notation if combined with scientific: see std::fixed [edit] 
 showbase
 generate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O: see std::showbase [edit] 
 showpoint
 generate a decimal-point character unconditionally for floating-point number output: see std::showpoint [edit] 
 uppercase
 replace certain lowercase letters with their uppercase equivalents in certain output operations: see std::uppercase [edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
(enum) [edit]
(typedef) [edit]
[edit] Notes
| Feature-test macro | Value | Std | Feature | 
|---|---|---|---|
| __cpp_lib_fstream_native_handle | 202306L | (C++26) | native handles support | 
[edit] Example
Run this code
#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