Part 2 book “C++ - The complete reference”has contents: Introducing the standard template library, the mathematical functions, the string and character functions, the dynamic allocation functions, time, date, and localization functions, exception handling and miscellaneous classes, the string class, and other contents. | C++ Chapter 20 The C++ I/O System Basics 511 512 C++: The Complete Reference ++ supports two complete I/O systems: the one inherited from C and the object-oriented I/O system defined by C++ (hereafter called simply the C++ I/O system). The C-based I/O system was discussed in Part One. Here we will begin to examine the C++ I/O system. Like C-based I/O, C++'s I/O system is fully integrated. The different aspects of C++'s I/O system, such as console I/O and disk I/O, are actually just different perspectives on the same mechanism. This chapter discusses the foundations of the C++ I/O system. Although the examples in this chapter use "console" I/O, the information is applicable to other devices, including disk files (discussed in Chapter 21). Since the I/O system inherited from C is extremely rich, flexible, and powerful, you might be wondering why C++ defines yet another system. The answer is that C's I/O system knows nothing about objects. Therefore, for C++ to provide complete support for object-oriented programming, it was necessary to create an I/O system that could operate on user-defined objects. In addition to support for objects, there are several benefits to using C++'s I/O system even in programs that don't make extensive (or any) use of user-defined objects. Frankly, for all new code, you should use the C++ I/O system. The C I/O is supported by C++ only for compatibility. This chapter explains how to format data, how to overload the > I/O operators so they can be used with classes that you create, and how to create special I/O functions called manipulators that can make your programs more efficient. C Old vs. Modern C++ I/O There are currently two versions of the C++ object-oriented I/O library in use: the older one that is based upon the original specifications for C++ and the newer one defined by Standard C++. The old I/O library is supported by the header file . The new I/O library is supported by the header . For the most part the two libraries .