在C/C++中可以通过特定的符号来输入一个变量。
它由格式说明和普通字符构成。
以“%”开头,后面跟格式字符,格式字符前面还可以有其他修饰符,表示输出数据的宽度、精度等。
格式如下:
%[flags][width][.precision][length]格式字符
格式说明符的个数必须与后面的参数 argument 的个数一致。
如:
int a = 10;
int b = 20;
int c = a + b;
printf("%d + %d = %d", a, b, c);
格式的详细说明如下:
- 格式字符及说明如下表所示。
格式字符 | 说明 | 示例 |
---|---|---|
d 或 i | 带符号十进制整数 | 26、 285 |
o | 无符号八进制整数 | 316、 501 |
x | 无符号十六进制整数 | 8cf、32b7 |
X | 无符号十六进制整数(以大写形式输出) | 8CF、32B7 |
u | 无符号十进制整数 | 1234、 32727 |
f | 小数形式的单、双精度浮点数 | 102.6、2987.58 |
e 或 E | 指数形式的单、双精度浮点数 | 1.026e+2、1.026E+2 |
g 或 G | 以 %f 或 %e 的形式输出浮点数 | 102.6 |
c | 单个字符 | ‘a’、A |
s | 字符串 | “hello” |
p | 输出一个指针 | 0012FF7C |
- flags 控制输出数据的对齐方式
flags | 说明 |
---|---|
- | 在给定的域宽内靠左端输出 |
+ | 强制在正数前输出 + 号,在负数前输出 - 号 |
# | 使用 o、x 或 X 格式时,在数据前面分别增加前导符 0、0x 或 0X 输出 |
3)width 控制数据输出的宽度
width | 说明 |
---|---|
m | 输出字段的宽度,如果数据的宽度小于 m,则左端补上空格;否则按照实际位数输出 |
4)precision 表示单精度和双精度浮点数的小数点个数
precision | 说明 |
---|---|
n | 对于浮点数,表示输出 n 位小数;对于字符串,表示输出字符串的个数 |
5)length 表示整型数据是长整型还是短整型,length
length | 说明 |
---|---|
h | 用来输出短整型数据(只对 i、d、0、u、x 和 X 有效) |
l 或 L | 用来输出长整型数据和双精度型数据 |