C++ file I/O is done via streams. The key abstractions are:
std::istream for reading text.
std::ostream for writing text.
std::streambuf for reading or writing characters.
Formatted input uses
Formatted output uses
std::locale, e.g., for details of the formatting and for translation between external encodings and the internal encoding.
More on streams.