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