std::basic_fstream
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_fstream
 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_fstream
 
 
 
 
 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_fstream implements high-level input/output operations on file based streams. It interfaces a file-based streambuffer (std::basic_filebuf ) with the high-level interface of (std::basic_iostream ).
A typical implementation of std::basic_fstream holds only one non-derived data member: an instance of std::basic_filebuf <CharT, Traits>.
std-basic fstream-inheritance.svg
Inheritance diagram
Several typedefs for common character types are provided:
Defined in header 
<fstream>   Type
 Definition
std::fstream
 std::basic_fstream<char>
std::wfstream
 std::basic_fstream<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_fstream 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_ostream
Member functions
Formatted output
Unformatted output
Positioning
 
 returns the output position indicator 
(public member function of
(public member function of
std::basic_ostream<CharT,Traits>) [edit] 
 
 sets the output position indicator 
(public member function of
(public member function of
std::basic_ostream<CharT,Traits>) [edit] 
Miscellaneous
 
 synchronizes with the underlying storage device 
(public member function of
(public member function of
std::basic_ostream<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.bin"}; std::fstream s{filename, s.binary | s.trunc | s.in | s.out}; if (!s.is_open()) std::cout << "failed to open " << filename << '\n'; else { // write double d{3.14}; s.write(reinterpret_cast<char*>(&d), sizeof d); // binary output s << 123 << "abc"; // text output // for fstream, this moves the file position pointer (both put and get) s.seekp(0); // read d = 2.71828; s.read(reinterpret_cast<char*>(&d), sizeof d); // binary input int n; std::string str; if (s >> n >> str) // text input std::cout << "read back from file: " << d << ' ' << n << ' ' << str << '\n'; } }
Output:
read back from file: 3.14 123 abc