29 Input/output library [input.output]

29.1 General [input.output.general]

This Clause describes components that C++ programs may use to perform input/output operations.
The following subclauses describe requirements for stream parameters, and components for forward declarations of iostreams, predefined iostreams objects, base iostreams classes, stream buffering, stream formatting and manipulators, string streams, and file streams, as summarized in Table 115.
Table 115: Input/output library summary [tab:iostreams.summary]
Forward declarations
Standard iostream objects
Iostreams base classes
Stream buffers
Formatting and manipulators
<iomanip>, <istream>, <ostream>
String streams
File streams
Synchronized output streams
File systems
C library files
<cstdio>, <cinttypes>
[Note 1:
Figure 7 illustrates relationships among various types described in this Clause.
A line from A to B indicates that A is an alias (e.g., a typedef) for B or that A is defined in terms of B.
figstreampos streampos streampos fpos fpos<mbstate_t> streampos->fpos iostream.forward wstreampos wstreampos wstreampos->fpos iostream.forward streamoff streamoff streamoff_type signed integer type sufficient for O/S maximum file size streamoff->streamoff_type stream.types streamsize streamsize streamsize_type signed integer type represents characters xfered or buffer sizes streamsize->streamsize_type stream.types traits_pos_type_char char_traits<char> ::pos_type traits_pos_type_char->streampos iostreams.limits.pos traits_pos_type_wchar_t char_traits<wchar_t> ::pos_type traits_pos_type_wchar_t->wstreampos iostreams.limits.pos traits_off_type_char char_traits<char> ::off_type traits_off_type_char->streamoff iostreams.limits.pos traits_off_type_wchar_t char_traits<wchar_t> ::off_type traits_off_type_wchar_t->streamoff iostreams.limits.pos
Figure 7: Stream position, offset, and size types  [fig:iostreams.streampos]
— end note]