std::basic_fstream
Defined in header <fstream> | ||
|---|---|---|
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_fstream : public std::basic_iostream<CharT, Traits>
|
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.
Two specializations for common character types are also defined:
Defined in header <fstream> |
|
|---|---|
| Type | Definition |
fstream | basic_fstream<char> |
wfstream | basic_fstream<wchar_t> |
Member types
| Member type | Definition |
|---|---|
char_type | CharT
|
traits_type | Traits; the program is ill-formed if Traits::char_type is not CharT. |
int_type | Traits::int_type
|
pos_type | Traits::pos_type
|
off_type | Traits::off_type
|
Member functions
| constructs the file stream (public member function) |
|
| (destructor)
[virtual] (implicitly declared) | destructs the basic_fstream and the associated buffer, closes the file (virtual public member function) |
|
(C++11) | moves the file stream (public member function) |
|
(C++11) | swaps two file streams (public member function) |
| returns the underlying raw file device object (public member function) |
|
File operations |
|
| checks if the stream has an associated file (public member function) |
|
| opens a file and associates it with the stream (public member function) |
|
| closes the associated file (public member function) |
|
Non-member functions
|
(C++11) | specializes the std::swap algorithm (function template) |
Inherited from std::basic_istream
Member functions
Formatted input |
|
| extracts formatted data (public member function of std::basic_istream<CharT,Traits>) |
|
Unformatted input |
|
| extracts characters (public member function of std::basic_istream<CharT,Traits>) |
|
| reads the next character without extracting it (public member function of std::basic_istream<CharT,Traits>) |
|
| unextracts a character (public member function of std::basic_istream<CharT,Traits>) |
|
| puts character into input stream (public member function of std::basic_istream<CharT,Traits>) |
|
| extracts characters until the given character is found (public member function of std::basic_istream<CharT,Traits>) |
|
| extracts and discards characters until the given character is found (public member function of std::basic_istream<CharT,Traits>) |
|
| extracts blocks of characters (public member function of std::basic_istream<CharT,Traits>) |
|
| extracts already available blocks of characters (public member function of std::basic_istream<CharT,Traits>) |
|
| returns number of characters extracted by last unformatted input operation (public member function of std::basic_istream<CharT,Traits>) |
|
Positioning |
|
| returns the input position indicator (public member function of std::basic_istream<CharT,Traits>) |
|
| sets the input position indicator (public member function of std::basic_istream<CharT,Traits>) |
|
Miscellaneous |
|
| synchronizes with the underlying storage device (public member function of std::basic_istream<CharT,Traits>) |
|
Member classes
| implements basic logic for preparation of the stream for input operations (public member class of std::basic_istream<CharT,Traits>) |
Inherited from std::basic_ostream
Member functions
Formatted output |
|
| inserts formatted data (public member function of std::basic_ostream<CharT,Traits>) |
|
Unformatted output |
|
| inserts a character (public member function of std::basic_ostream<CharT,Traits>) |
|
| inserts blocks of characters (public member function of std::basic_ostream<CharT,Traits>) |
|
Positioning |
|
| returns the output position indicator (public member function of std::basic_ostream<CharT,Traits>) |
|
| sets the output position indicator (public member function of std::basic_ostream<CharT,Traits>) |
|
Miscellaneous |
|
| synchronizes with the underlying storage device (public member function of std::basic_ostream<CharT,Traits>) |
|
Member classes
| implements basic logic for preparation of the stream for output operations (public member class of std::basic_ostream<CharT,Traits>) |
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 std::basic_ios<CharT,Traits>) |
|
| checks if end-of-file has been reached (public member function of std::basic_ios<CharT,Traits>) |
|
| checks if an error has occurred (public member function of std::basic_ios<CharT,Traits>) |
|
| checks if a non-recoverable error has occurred (public member function of std::basic_ios<CharT,Traits>) |
|
checks if an error has occurred (synonym of fail()) (public member function of std::basic_ios<CharT,Traits>) |
|
|
(until C++11)(since C++11) | checks if no error has occurred (synonym of !fail()) (public member function of std::basic_ios<CharT,Traits>) |
| returns state flags (public member function of std::basic_ios<CharT,Traits>) |
|
| sets state flags (public member function of std::basic_ios<CharT,Traits>) |
|
| modifies state flags (public member function of std::basic_ios<CharT,Traits>) |
|
Formatting |
|
| copies formatting information (public member function of std::basic_ios<CharT,Traits>) |
|
| manages the fill character (public member function of std::basic_ios<CharT,Traits>) |
|
Miscellaneous |
|
| manages exception mask (public member function of std::basic_ios<CharT,Traits>) |
|
| sets the locale (public member function of std::basic_ios<CharT,Traits>) |
|
| manages associated stream buffer (public member function of std::basic_ios<CharT,Traits>) |
|
| manages tied stream (public member function of std::basic_ios<CharT,Traits>) |
|
| narrows characters (public member function of std::basic_ios<CharT,Traits>) |
|
| widens characters (public member function of std::basic_ios<CharT,Traits>) |
|
Inherited from std::ios_base
Member functions
Formatting |
|
| manages format flags (public member function of std::ios_base) |
|
| sets specific format flag (public member function of std::ios_base) |
|
| clears specific format flag (public member function of std::ios_base) |
|
| manages decimal precision of floating point operations (public member function of std::ios_base) |
|
| manages field width (public member function of std::ios_base) |
|
Locales |
|
| sets locale (public member function of std::ios_base) |
|
| returns current locale (public member function of std::ios_base) |
|
Internal extensible array |
|
|
[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) |
resizes the private storage if necessary and access to the long element at the given index (public member function of std::ios_base) |
|
resizes the private storage if necessary and access to the void* element at the given index (public member function of std::ios_base) |
|
Miscellaneous |
|
| registers event callback function (public member function of std::ios_base) |
|
|
[static] | sets whether C++ and C IO libraries are interoperable (public static member function of std::ios_base) |
Member classes |
|
| stream exception (public member class of std::ios_base) |
|
| initializes standard stream objects (public member class of std::ios_base) |
|
Member types and constants |
|||||||||||||||||||||||||||||||||||||||
| Type | Explanation | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stream open mode type The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| formatting flags type The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| state of the stream type The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| seeking direction type The following constants are also defined:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| specifies event type (enum) |
|||||||||||||||||||||||||||||||||||||||
| callback function type (typedef) |
|||||||||||||||||||||||||||||||||||||||
See also
| read data from an I/O stream into a string (function template) |
Example
#include <iostream>
#include <fstream>
#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
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
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/basic_fstream