在转换说明中插入修饰符,可以有效的限制数据的输入和输出,以及正确排列
从昨天,我就开始有些遗忘所学过的知识,所以现在重温一下
转换说明修饰符

实例

A.
‘%’后面加上某个数字可以代表最小字符宽度,对于%d(有符号十进制整数来说)
比如cost=10,那么%2d正好满足10这个字符的限制,那么%3d,调试的时候系统就需要在前面加上空格,来满足最小三位宽度的需求
B.
‘%’后面加上某个数字可以代表最小字符宽度,
对于%e(e计数法)
float=12.75,那么%2e,那么就是1.28e3
对于%1e那么就是1.3e3,因为四舍五入
对于%3e那么就是1.275e3
对于%f(十进制浮点数)来说
float=12.75,对于%.2f的来说就是小数点保留两位数字,调试之后会是12.75
对于%1f来说,小数点后面保留一位,但是cost=12.75后面有两位,那么就要四舍五入,那么调试后将会是12.8
对于%3f来说,小数点保留三位,那么将会是12.750
C.
”%g’表示的是会在%f和%e自动选择,那么在%g加上数字就是有效数字最大位数,但是不输出无意义的0!!!
cake=12.75
那么%2g那么1.3
%3g就是1.28e1
D.
在字段限制前面加上0表示不再用空格填充未饱和的字段而是0
比如cost=10,
如果printf(“%5d”,cost),那么调试结果就是‘ 10’
如果用前导0,那么就是,另一种结果
printf(“%05d”)那么就是(‘00010’)
E.
在字符串%s中间加上数字也是限制字符最低数量,举个例子
#define hope "extraordinay"
正常表示(不做限制)
printf("%s",hope);
那么调试之后就是‘extraprdinay’
限制最低字符数
printf("%5s",hope);
那么调试后就是’extraordinary’
超出规定字符
超出就用空格补齐
printf("%15s",hope);
那么调试之后就会是’ extraordinary’
限制字符数显示
printf("%15.5s",hope)
那么调试的就是‘ extra’,由此看出这个是从左边打印的!
printf(“-%15.5s".hope)
那么控制台就会显示‘extra ‘
G.
如果加上’+‘号,那么正的会显示加号,负的会显示-号
pritnf(”+5.2f“,cake)
那么调试之后就会显示‘ +12.99’
H.
printf("%o",cost)
那么调试之后将会是12
printf("%#o",cost)
那么调试后就是012
I.
cost=10,那么正常用十六进制表达就是
printf("%x",cost)
那么调试台结果就是’a’
printf("%#x",cost)
加上’#‘调试结果就是’0xa‘
J.
’%#g‘可以保证后面,即使没有零,打印的时候也有零的存在

#include <stdio.h>
int main(void)
{
float cost = 10;
printf("%g \n", cost);//正常表示
printf("%#g \n", cost);//用#表示
return 0;
}
正常输出结果为
