3.2.2 for循环的变体(4)
示例说明
我们给几个新的操作符名称提供了using声明,这些操作符在本程序中用来影响输出的显示方式。
本示例中的循环由char类型的变量capital控制,我们在初始化表达式中声明了该变量及small变量。在循环的第三个控制表达式中,还使这两个变量递增,这样capital的值将从'A'变化到'Z',而small的值将相应地从'a'变化到'z'。
该循环只包含一条输出语句,但此语句分7行写完,第一行是:
- cout << endl
这一行代码使结果在屏幕上换行输出。
接下来的3行代码如下:
- << "\t" << capital // Output capital as a character
- << hex << setw(10) << static_cast <int> (capital) // and as hexadecimal
- << dec << setw(10) << static_cast <int> (capital) // and as decimal
每次迭代时,在输出制表符之后,capital的值将以字符、十六进制数和十进制数3种形式显示3次。
当将hex操作符插入cout流时,将使后面的整数值以十六进制数形式显示,而不是以默认的十进制表示法显示。因此,capital的第二次输出是其字符的十六进制表示法。
然后,将dec操作符插入cout流,从而使后面的数值再次以十进制形式输出。默认情况下,char类型的变量被输出流解释为字符,而不是数值。使用第2章介绍的static_cast< >()运算符,将char类型变量capital的值强制转换为int类型,就可以使该变量以数值形式输出。
输出语句的后3行代码以类似的方式输出small的值:
- << " " << small // Output small as a character
- << hex << setw(10) << static_cast <int> (small) // and as hexadecimal
- << dec << setw(10) << static_cast <int> (small); // and as decimal
因此,该程序产生下面的输出:
- A 41 65 a 61 97
- B 42 66 b 62 98
- C 43 67 c 63 99
- D 44 68 d 64 100
- E 45 69 e 65 101
- F 46 70 f 66 102
- G 47 71 g 67 103
- H 48 72 h 68 104
- I 49 73 i 69 105
- J 4a 74 j 6a 106
- K 4b 75 k 6b 107
- L 4c 76 l 6c 108
- M 4d 77 m 6d 109
- N 4e 78 n 6e 110
- O 4f 79 o 6f 111
- P 50 80 p 70 112
- Q 51 81 q 71 113
- R 52 82 r 72 114
- S 53 83 s 73 115
- T 54 84 t 74 116
- U 55 85 u 75 117
- V 56 86 v 76 118
- W 57 87 w 77 119
- X 58 88 x 78 120
- Y 59 89 y 79 121
- Z 5a 90 z 7a 122