格式说明总是由“%”字符开始的,不同类型的数据用不同的格式字符。 格式字符有d,o,x,u,c,s,f,e,g,p等。
1.转换说明
%d整型输出,%md,m为指定的输出字段的宽度,%ld长整型输出。
%i有符号十进制整数(与%d相同)。
%u以十进制数输出unsigned型数据(无符号数)。
%o以八进制数形式输出整数。
%x以十六进制数形式输出整数。
%c用来输出一个字符。
%s用来输出一个字符串。
%f用来输出实数,以小数形式输出,默认情况下保留小数点6位。
%e以指数形式输出实数。
%g根据大小自动选f格式或e格式,且不输出无意义的零。
%p用于变量地址的输出。
%% "%"
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
scanf("%d%c%s",&a,&b,str);
printf("%d%c",a,b);
2.标志-五种标志 (-、+、空格、# 和0)
- 项目是左对齐的:也就是说,会把项目打印在字段的左侧开始处
例如:”%-20s”
+ 有符号的值若为正,则显示带加号的符号:若为负,则带减号的符号
例如:”%+6.2f”
(空格) 有符号的值若为正,则显示带前导空格(但是不显示符号):若为负,则带减号符号。+标示会覆盖空格标志
例如:”% 6.2f”
# 使用转换说明的可选形式。若为%o格式,则以0开始;若为%x和%X格式,则以0x或0X开始,对于所有的浮点形式,#保证了即使不限任何数字,也打印一个小数点字符。对于%g和%G格式,它防止尾随零被删除。
例如:“%#o”、“%#8.0f”和“%+#10.3E”
0 对于所有的数字格式,用前导零而不是用空格填充字段宽度。如果出现-标志或者指定了精度(对于整数)则忽略该标志。
3.格式字符串(格式)
[标志][输出最少宽度][.精度][长度]类型
"%-md" :左对齐,若m比实际少时,按实际输出。
"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
e.g. "%7.2s" 输入CHINA
输出" CH"
"%m.nf":输出浮点数,m为宽度,n为小数点右边数位
e.g. "%3.1f" 输入3852.99
输出3853.0
长度:为h短整形量,l为长整形量