Chapter Summary
C++ uses library classes to handle stream-oriented input and output:
- The
iostreamclasses handle IO to console - The
fstreamclasses handle IO to named files - The
stringstreamclasses do IO to in-memorystrings
The fstream and stringstream classes are related by inheritance to the iostream classes. The input classes inherit from istream and the output classes from ostream. Thus, operations that can be performed on an istream object can also be performed on either an ifstream or an istringstream. Similarly for the output classes, which inherit from ostream.
Each IO object maintains a set of condition states that indicate whether IO can be done through this object. If an error is encountered—such as hitting end-of-file on an input stream—then the object’s state will be such that no further input can be done until the error is rectified. The library provides a set of functions to set and test these states.