㈠通用格式:%m.pX或%-m.pX
m和p都是整型常量,而X是字母。m和p都是可选的。“如果省略p,m和p之间的小数点也要去掉。但省略m则不需去。”—方便识别m和p。
㈡最小栏宽 m:m指定了要显示的最少字符数量。“显示”即输入的字符少了会补(空格),但字符多了也不会缺(会扩增)。对于补空,则无负号在右补,有负号在左补。
㈢精度 p:依赖于X,所以在下文叙述。
㈣转换指定符X:
①整数:
⒈有符号或无符号(负号) :%d(十进制)
无符号(只有正):%u(十进制),%o(八进制),%x(十六进制)
⒉(~d,~u,~o,~x) :
短整数:%h~
长整数:%l ~
长长整数:%ll ~
②浮点数:
⒈%e(表示指数(科学记数法)形式的浮点数。p指明了小数点后应该出现的数字个数(默认值为6)。如果p为0,则不显示小数点。),%f(表示“定点十进制”形式的浮点数,没有指数。 p的含义与说明符e中的一样。),%g(表示指数形式或者定点十进制形式的浮点数,形式的选择根据数的大小决定。p 意味着可以显示的有效数字(不是小数点后的数字)的最大数量。与转换指定符f不同,g的转换将不显示尾随的零。此外,如果要显示的数值没有小数点后的数字,g就不显示小数点。 )
⚠读double(双精度)类型值时要在e,f,g前加|(即long)<补充:为了表明只需要单精度,可以在常量的末尾处加上字母F或f;而为了说明常量必须以long double格式存储,可以在常量的末尾处加上字母L或l。>,但只能在scanf中用,不可(或无效)在printf中用。读long double时加L。
⚠有效数字vs小数点后几位。
③单个字符:%c。
④字符串:%s(m,p相关用法与数一样,其中p即使字符串中前p个字符显示。)
㈤总结几点注意:
⊕m,p一般只在输出时起作用。
⊕补充:(位数不足,自动补0的实现)⏩
例子:Ⅰ .%.pd:输出p位,不足在前补0(但足的话可以超出)如下:
对比%2d效果:
% -2d效果:
% 02d效果: