Personal tools
Comprehensive TOC
Click on the banner to return to the user guide home page.
Table of Contents
- 1.1 How to Read this Section
- 1.2 Internationalization and Localization
- 1.2.1 Localizing Cultural Conventions
- 1.2.2 Character Encodings for Localizing Alphabets
- 1.2.3 Summary
- 1.3 The Standard C Locale and the Standard C++ Locales
- 1.3.1 The C Locale
- 1.3.2 The C++ Locales
- 1.3.3 Facets
- 1.3.4 Differences between the C Locale and the C++ Locales
- 1.3.5 Relationship between the C Locale and the C++ Locale
- 1.4 The Locale
- 1.5 The Facets
- 1.5.1 Creating a Facet Object
- 1.5.2 Accessing a Locale's Facets
- 1.5.3 Using a Stream's Facet
- 1.5.4 Creating a Facet Class for Replacement in a Locale
- 1.5.5 The Facet Id
- 1.5.6 Creating a Facet Class for Addition to a Locale
- 1.6 User-Defined Facets: An Example
- 1.6.1 A Phone Number Class
- 1.6.2 A Phone Number Formatting Facet Class
- 1.6.3 An Inserter for Phone Numbers
- 1.6.4 The Phone Number Facet Class Revisited
- 1.6.5 An Example of a Concrete Facet Class
- 1.6.6 Using Phone Number Facets
- 1.6.7 Formatting Phone Numbers
- 1.6.8 Improving the Inserter Function
- 2.1 How to Read This Section
- 2.1.1 Code Examples
- 2.1.2 Terminology
- 2.2 The Architecture of Iostreams
- 2.2.1 What Are the Standard Iostreams?
- 2.2.2 How Do the Standard Iostreams Work?
- 2.2.3 How Do the Standard Iostreams Help Solve Problems?
- 2.2.4 The Internal Structure of the Iostreams Layers
- 2.3 Formatted Input/Output
- 2.3.1 The Predefined Streams
- 2.3.2 Input and Output Operators
- 2.3.3 Format Control Using the Stream's Format State
- 2.3.4 Localization Using the Stream's Locale
- 2.3.5 Formatted Input
- 2.4 Error State of Streams
- 2.4.1 Checking the Stream State
- 2.4.2 Catching Exceptions
- 2.5 File Input/Output
- 2.5.1 The Difference between Predefined File Streams (cin, cout, cerr, and clog) and File Streams
- 2.5.2 Code Conversion in Wide Character Streams
- 2.5.3 File Streams
- 2.5.4 The Open Mode
- 2.5.5 Binary and Text Mode
- 2.6 In-Memory Input/Output
- 2.6.1 The Internal Buffer
- 2.6.2 The Open Modes
- 2.7 Input/Output of User-Defined Types
- 2.7.1 An Example Using a User-Defined Type
- 2.7.2 A Simple Extractor and Inserter for the Example
- 2.7.3 Improved Extractors and Inserters
- 2.7.4 More Improved Extractors and Inserters
- 2.7.5 Patterns for Extractors and Inserters of User-Defined Types
- 2.8 Manipulators
- 2.8.1 Manipulators without Parameters
- 2.8.2 Manipulators with Parameters
- 2.9 Streams and Stream Buffers
- 2.9.1 Copying and Assigning Stream Objects
- 2.9.2 Sharing a Stream Buffer Among Streams
- 2.9.3 Copies of the Stream Buffer
- 2.10 Synchronizing Streams
- 2.10.1 Explicit Synchronization
- 2.10.2 Implicit Synchronization Using the unitbuf Format Flag
- 2.10.3 Implicit Synchronization by Tying Streams
- 2.10.4 Synchronizing the Predefined Standard Streams
- 2.10.5 Synchronization with the C Standard I/O
- 2.11 Stream Storage for Private Use: iword, pword, and xalloc
- 2.11.1 An Example: Storing a Date Format String
- 2.11.2 Another Look at the Date Format String
- 2.11.3 Caveat
- 2.12 Creating New Stream Classes by Derivation
- 2.12.1 Choosing a Base Class
- 2.12.2 Construction and Initialization
- 2.12.3 The Example
- 2.12.4 Using iword/pword for RTTI in Derived Streams
- 2.13 Defining A Code Conversion Facet
- 2.13.1 Categories of Code Conversions
- 2.13.2 Example 1 -- Defining a Tiny Character Code Conversion (ASCII and EBCDIC)
- 2.13.3 Error Indication in Code Conversion Facets
- 2.13.4 Example 2 -- Defining a Multibyte Character Code Conversion (JIS and Unicode)
- 2.14 Differences between Standard and Traditional Iostreams
- 2.14.1 The Character Type
- 2.14.2 Internationalization
- 2.14.3 File Streams
- 2.14.4 String Streams
- 2.14.5 Streams with Assign
- 2.15 Differences between Standard and Rogue Wave IOStreams
- 2.15.1 Extensions
- 2.15.2 Restrictions
- 2.15.3 Deprecated Features
Chapter 1: Internationalization
Chapter 2: Stream Input/Output
Appendix A: Implementation Dependencies and Open Issues in the Standard
©Copyright 1996, Rogue Wave Software, Inc.