在 C语言中,我们可以在占位符中使用一些修饰符来控制输出的格式,下面是常用的一些修饰符:
%-
:左对齐输出;%0
:在输出数字时,如果位数不够用 0 填充;%.
:用于控制浮点数输出的小数位数;%*
:用于控制输出的宽度,其中*表示要输出的宽度。
以下通过举例子来解释修饰的作用,与没有修饰的占位符做对比:
不加修饰的占位符:
%为转义作用
占位符 | 含义 |
---|---|
%d | 以十进制形式输出整数 |
%u | 以十进制形式输出无符号整数 |
%x | 以十六进制形式输出整数(小写字母) |
%X | 以十六进制形式输出整数(大写字母) |
%o | 以八进制形式输出整数 |
%f | 以浮点数形式输出实数 |
%e | 以指数形式输出实数 |
%g | 自动选择 %f 或 %e 输出实数 |
%c | 输出单个字符 |
%s | 输出字符串 |
%p | 输出指针的地址 |
%n | 输出已经输出的字符数 |
%% | 输出百分号本身 |
#include<stdio.h>
int main()
{
int a = 10;
unsigned int b = 20;
char c = 'A';
char s[] = "hello world";
float f = 3.14;
double d = 3.1415926;
void *ptr = &a;
printf("a = %d\n", a);
printf("b = %ud\n", b);
printf("c = %c\n", c);
printf("s = %s\n", s);
printf("f = %f\n", f);
printf("d = %e\n", d);
printf("ptr = %p\n", ptr);
printf("%%\n");
printf("%d %d %d\n", 1, 2, 3);
return 0;
}
打印结果
修饰占位符解释及举例:
在 C语言中,我们可以在占位符中使用一些修饰符来控制输出的格式,下面是常用的一些修饰符:
1.%-
:左对齐输出:
先举例一个%8d :意思是用空格凑够8个位置,数字自己任意取;
例如printf("%8d",1234); ,打印结果为:[][][][]1234 ([]为空格)
在前面加上-后空格会补在右边:
例如printf("%-8d",1234); ,打印结果为:1234[][][][]
2.%0
:在输出数字时,如果位数不够用 0 填充:
例如printf("%08d",1234); ,打印结果为:00001234
3.%.
:用于控制浮点数输出的小数位数:
例如printf("%.4f",12.34); ,打印结果为:12.3400
4.%*
:用于控制输出的宽度,其中*表示要输出的宽度(数字):
例如printf("%*d",9,1234); ,第一个9是替换*,打印结果为:[][][][][]1234
5.%+: 用于总是显示正负号:
例如printf("%+d",1234); ,打印结果为:+1234