C++语言程序设计

type域字符：

| 表2-19：

转换字符 | 类型 | 含义
C | int | 输出一个字符
C | int | 同上
D | int | 输出有符号十进制整数
I | int | 同上
O | int | 输出无符号八进制整数
U | int | 无符号十进制整数
X | int | 无符号十六进制整数
X | int | 同上
e | double | 以科学计数法输出浮点数
E | double | 同上
F | double | 输出十进制浮点数
G | double | 等效于%e和%f，取两者之中较短的
G | double | 同上
P | void指针 | 输出指针地址，格式如下：xxxx:yyyy ，xxxx 是段地址，yyyy 是偏移量，它们都是十六进制数
S | char* | 输出字符串

例如:
printf("%d%x", n, n)
是将n分别按10进制和16进制整数输出。
我们可以用flag任选符来改变输出的格式，

| 表2-20：

Flag | 含义 | 缺省
- | 左对齐 | 右对齐
+ | 如果结果是有符号数，则显示符号 | 只显示负号
0 | 在结果前面填充0 | 无填充
空格 (' ') | 如果结果是有符号数且为正，则在前面填充一个空格 | 不填充空格

例如：
printf("%+d",n);
输出整数n时显示符号（包括正号）。
可以使用width域设置输出的宽度，如果输出的宽度小于设置的宽度，用空格填充，如果大于设置的宽度，则设置的宽度将被忽略，而不会将结果裁剪。
例如：
printf("%+10d", n);
输出整数n时显示符号，且宽度为10位，如n不够10位，则用空格填充，否则按实际位数显示。