格式字符用以指定输出项的数据类型和输出格式。
①d 格式:用来输出十进制整数。有以下几种用法:
%d:按整型数据的实际长度输出。
%md:m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若
大于 m,则按实际长度输出; %-md 则为右端补空格
%ld:输出长整型数据。
②o 格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可
以指定字段宽度用“%mo、%-mo”格式输出。
③x 格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也
可以指定字段宽度用"%mx、%-mx"格式输出。
④u 格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可
以指定字段宽度用“%mu、%-mu”格式输出。
⑤c 格式:输出一个字符。
⑥s 格式:用来输出一个串。有几种用法
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占 m 列,如串长大于 m,则将字符串全部输出;若串长小于
m,则左补空格。
%-ms:如串长大于 m,则将字符串全部输出;如果串长小于 m,右补空格;
%m.ns:输出占 m 列,但只取字符串中左端 n 个字符。这 n 个字符输出在 m 列的右
侧,左补空格。如果 n>m,则自动取 n 值,即保证 n 个字符正常输出。
%-m.ns:只取字符串中左端 n 个字符,这 n 个字符输出在 m 列范围的左侧,右补空
格。如果 n>m,则自动取 n 值,即保证 n 个字符正常输出。
⑦f 格式:用来输出单精度实数,以小数形式输出。有以下几种用法:
%f:不指定宽度,整数部分全部输出并输出 6 位小数(超过 6 位时四舍五入,不足 6
位时在低位补 0)。
%.mf:要求小数部分只能位 m 位(超过 m 位时四舍五入,不足 m 位时在低位补 0);
%mf:若整数位数+1+6 位<m 则左端补空格,反之完整输出;
%-mf:若整数位数+1+6 位<m 则右端补空格,反之完整输出;
%m.nf:小数 n 位(超过 n 位时四舍五入,不足 n 位时在低位补 0);
若整数位数+1+n 位<m 位则在左端补空格,反之完整输出;
%-m.nf:小数部分只能 n 位(超过 n 位时四舍五入,不足 n 位时在低位补 0);
若整数位数+1+n 位<m 位则在右端补空格,反之完整输出;
⑧e 格式:以指数形式输出实数。可用以下形式:
%e:整数部分只有 1 位(且为最高位),小数部分有 6 位(超过 6 位时四舍五入,不足 6
位时在低位补 0),指数部分占 3 位。 例如 11.223 以%e 输出时为:
1.122300e+001
%m.ne 和%-m.ne:小数部分有 n 位(超过 n 位时四舍五入,不足 n 位时在低位补
0);