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>.
Inheritance diagram
Several typedefs for common character types are provided:
Type Definitionstd::fstream
std::basic_fstream<char> std::wfstream
std::basic_fstream<wchar_t> [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 constructs the file stream
(destructor)
[virtual] (implicitly declared)
destructs thebasic_fstream
and the associated buffer, closes the file
std::basic_istream<CharT,Traits>
) [edit] Unformatted input extracts characters
std::basic_istream<CharT,Traits>
) [edit] reads the next character without extracting it
std::basic_istream<CharT,Traits>
) [edit] unextracts a character
std::basic_istream<CharT,Traits>
) [edit] puts a character into input stream
std::basic_istream<CharT,Traits>
) [edit] extracts characters until the given character is found
std::basic_istream<CharT,Traits>
) [edit] extracts and discards characters until the given character is found
std::basic_istream<CharT,Traits>
) [edit] extracts blocks of characters
std::basic_istream<CharT,Traits>
) [edit] extracts already available blocks of characters
std::basic_istream<CharT,Traits>
) [edit] returns number of characters extracted by last unformatted input operation
std::basic_istream<CharT,Traits>
) [edit] Positioning returns the input position indicator
std::basic_istream<CharT,Traits>
) [edit] sets the input position indicator
std::basic_istream<CharT,Traits>
) [edit] Miscellaneous synchronizes with the underlying storage device
std::basic_istream<CharT,Traits>
) [edit] Member classes implements basic logic for preparation of the stream for input operations
std::basic_istream<CharT,Traits>
) [edit] Inherited from std::basic_ostream Member functions Formatted output inserts formatted data
std::basic_ostream<CharT,Traits>
) [edit] Unformatted output inserts a character
std::basic_ostream<CharT,Traits>
) [edit] inserts blocks of characters
std::basic_ostream<CharT,Traits>
) [edit] Positioning returns the output position indicator
std::basic_ostream<CharT,Traits>
) [edit] sets the output position indicator
std::basic_ostream<CharT,Traits>
) [edit] Miscellaneous synchronizes with the underlying storage device
std::basic_ostream<CharT,Traits>
) [edit] Member classes implements basic logic for preparation of the stream for output operations
std::basic_ostream<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 checks if no error has occurred i.e. I/O operations are available
std::basic_ios<CharT,Traits>
) [edit] checks if end-of-file has been reached
std::basic_ios<CharT,Traits>
) [edit] checks if an error has occurred
std::basic_ios<CharT,Traits>
) [edit] checks if a non-recoverable error has occurred
std::basic_ios<CharT,Traits>
) [edit] checks if an error has occurred (synonym of fail())
std::basic_ios<CharT,Traits>
) [edit] checks if no error has occurred (synonym of !
fail())
std::basic_ios<CharT,Traits>
) [edit] returns state flags
std::basic_ios<CharT,Traits>
) [edit] sets state flags
std::basic_ios<CharT,Traits>
) [edit] modifies state flags
std::basic_ios<CharT,Traits>
) [edit] Formatting copies formatting information
std::basic_ios<CharT,Traits>
) [edit] manages the fill character
std::basic_ios<CharT,Traits>
) [edit] Miscellaneous manages exception mask
std::basic_ios<CharT,Traits>
) [edit] sets the locale
std::basic_ios<CharT,Traits>
) [edit] manages associated stream buffer
std::basic_ios<CharT,Traits>
) [edit] manages tied stream
std::basic_ios<CharT,Traits>
) [edit] narrows characters
std::basic_ios<CharT,Traits>
) [edit] widens characters
std::basic_ios<CharT,Traits>
) [edit] Inherited from std::ios_base Member functions Formatting manages format flags
std::ios_base
) [edit] sets specific format flag
std::ios_base
) [edit] clears specific format flag
std::ios_base
) [edit] manages decimal precision of floating point operations
std::ios_base
) [edit] manages field width
std::ios_base
) [edit] Locales sets locale
std::ios_base
) [edit] returns current locale
std::ios_base
) [edit] Internal extensible array returns a program-wide unique integer that is safe to use as index to pword() and iword()
std::ios_base
) [edit] resizes the private storage if necessary and access to the long element at the given index
std::ios_base
) [edit] resizes the private storage if necessary and access to the void* element at the given index
std::ios_base
) [edit] Miscellaneous registers event callback function
std::ios_base
) [edit] sets whether C++ and C I/O libraries are interoperable
std::ios_base
) [edit] Member classes stream exception
std::ios_base
) [edit] initializes standard stream objects
std::ios_base
) [edit] Member types and constants Type Explanation stream open mode type
The following constants are also defined:
The following constants are also defined:
The following constants are also defined:
The following constants are also defined:
#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[edit] See also read data from an I/O stream into a string
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4