格式化输出字符

C 语言中的格式化输出字符如下

格式字符 类型 备注
%[-][0][n]d int -表示左对齐,n表示输出宽度,0表示右对齐时用0补齐,左对齐时用空格补齐
%c char
%[-][0][n][.n]f float .n表示小数位位数,其余同int
%[-][0][n][.n]s char[] .n表示从左开始取n位,其余同int
%hd short
%[#]o 八进制整型 # 表示显示八进制前面的0
%[#]x 十六进制整型 # 表示显示八进制前面的0x
%hu unsigned short
%ld/%Ld long
%lld/%LLd long long
%u unsighed int
%ul/lu/UL/LU unsigned long int
%ull/llu/ULL/LLU unsigned long long int
%lf double 参数同上
%e 科学计数法 1e2=1*10^22e-2=2*10^(-2)0.5E+3=0.5*10^(3)
%g 自动判断使用f还是e
%p point
%% 输出%

*修饰符

以格式化输出整数为例,如果想要动态地控制输出的整数的宽度,需要用到* 修饰符

1
2
3
4
5
int width = 6, precision = 2, n = 1;
float f = 3.1415926;
printf("######\n");
printf("%0*d\n", width, n);
printf("%*.*f", width, precision, f);

输出如下

1
2
3
######
000001
3.14