| 整数类型 |
%d |
输出/输入有符号十进制整数。 |
int a = 10; printf("%d", a); |
|
%i |
输出/输入有符号整数(自动识别十进制、八进制、十六进制输入)。 |
scanf("%i", &a); // 输入 10, 012, 0xA 均可 |
|
%u |
输出/输入无符号十进制整数。 |
unsigned int b = 100; printf("%u", b); |
|
%o |
输出/输入无符号八进制整数。 |
printf("%o", 100); // 输出 144 |
|
%x, %X |
输出/输入无符号十六进制整数(小写/大写字母)。 |
printf("%x", 255); // 输出 ff |
| 浮点类型 |
%f |
输出/输入十进制浮点数(float 和 double 输出)。 |
float f = 3.14; printf("%f", f); |
|
%lf |
输入 double 类型浮点数(scanf 专用)。 |
double d; scanf("%lf", &d); |
|
%e, %E |
以科学计数法输出浮点数(小写 e / 大写 E)。 |
printf("%e", 1000.0); // 输出 1.000000e+03 |
|
%g, %G |
自动选择 %f 或 %e(%E)中更紧凑的格式输出。 |
printf("%g", 1000.0); // 可能输出 1000 |
| 字符与字符串 |
%c |
输出/输入单个字符。 |
char c = 'A'; printf("%c", c); |
|
%s |
输出/输入字符串(以空字符 \0 结尾)。 |
char s[] = "Hello"; printf("%s", s); |
| 指针类型 |
%p |
输出指针地址(通常以十六进制格式)。 |
int var; printf("%p", (void*)&var); |
| 长度修饰符示例 |
%hd |
输出/输入 short int。 |
short s; scanf("%hd", &s); |
|
%ld |
输出/输入 long int。 |
long l = 1000L; printf("%ld", l); |
|
%lld |
输出/输入 long long int。 |
long long ll = 1000000LL; printf("%lld", ll); |
|
%Lf |
输出/输入 long double。 |
long double ld = 3.14; printf("%Lf", ld); |
| 其他 |
%% |
输出一个百分号 % 字符本身。 |
printf("完成度 100%%"); |
|
%n |
将目前已输出的字符数量写入到对应参数(一个整型指针)中。 |
int count; printf("Hello%n", &count); // count 变为 5 |