类型 说明符 用途(配合如printfscanf 常见示例
整数类型 %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 输出/输入十进制浮点数(floatdouble 输出)。 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