[5] The library has undergone a number of enhancements since this early version, including the introduction of manipulators to control formatting, and templatization to allow its use with character types other than char.
Standardization in 1998 saw the library moved into the std namespace, and the main header changed from
For example, basic_fstream
Classes, that fall into abstractions category, provide an interface which is sufficient for working with any type of a stream.
The code using such classes doesn't depend on the exact location the data is read from or is written to.
For example, such code could write data to a file, a memory buffer or a web socket without a recompilation.
The classes in the library could also be divided into two groups by whether it implements low-level or high-level operations.
In C++ and its predecessor, the C programming language, there is no special syntax for streaming data input or output.
Like the cstdio header inherited from C's stdio.h, iostream provides basic input and output services for C++ programs.
iostream uses the objects cin, cout, cerr, and clog for sending data to and from the standard streams input, output, error (unbuffered), and log (buffered) respectively.
The formatting manipulators must be "reset" at the end or the programmer will unexpectedly get their effects on the next output statement.