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