ptg7913098
xviii Contents
15.4 State of Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
15.4.1 Constants for the State of Streams . . . . . . . . . . . . . . . . . . . . . 758
15.4.2 Member Functions Accessing the State of Streams . . . . . . . . . . . . . 759
15.4.3 Stream State and Boolean Conditions . . . . . . . . . . . . . . . . . . . 760
15.4.4 Stream State and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . 762
15.5 Standard Input/Output Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 767
15.5.1 Member Functions for Input . . . . . . . . . . . . . . . . . . . . . . . . 768
15.5.2 Member Functions for Output . . . . . . . . . . . . . . . . . . . . . . . 771
15.5.3 Example Uses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
15.5.4 sentry Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
15.6 Manipulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
15.6.1 Overview of All Manipulators . . . . . . . . . . . . . . . . . . . . . . . 774
15.6.2 How Manipulators Work . . . . . . . . . . . . . . . . . . . . . . . . . . 776
15.6.3 User-Defined Manipulators . . . . . . . . . . . . . . . . . . . . . . . . . 777
15.7 Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
15.7.1 Format Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
15.7.2 Input/Output Format of Boolean Va l u e s . . . . . . . . . . . . . . . . . . 781
15.7.3 Field Width, Fill Character, and Adjustment . . . . . . . . . . . . . . . . 781
15.7.4 Positive Sign and Uppercase Letters . . . . . . . . . . . . . . . . . . . . 784
15.7.5 Numeric Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
15.7.6 Floating-Point Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
15.7.7 General Formatting Definitions . . . . . . . . . . . . . . . . . . . . . . . 789
15.8 Internationalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
15.9 File Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
15.9.1 File Stream Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
15.9.2 Rvalue and Move Semantics for File Streams . . . . . . . . . . . . . . . 795
15.9.3 File Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
15.9.4 Random Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
15.9.5 Using File Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
15.10 Stream Classes for Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
15.10.1 String Stream Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
15.10.2 Move Semantics for String Streams . . . . . . . . . . . . . . . . . . . . . 806
15.10.3 char* Str eam Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
15.11 Input/Output Operators for User-Defined Types . . . . . . . . . . . . . . . . . . . 810
15.11.1 Implementing Output Operators . . . . . . . . . . . . . . . . . . . . . . 810
15.11.2 Implementing Input Operators . . . . . . . . . . . . . . . . . . . . . . . 812
15.11.3 Input/Output Using Auxiliary Functions . . . . . . . . . . . . . . . . . . 814