C语言printf格式化输出修饰符
printf()的格式符
转换说明
输出
%a,%A
浮点数、十六进制数和p-计数法(C99)
%c
一个字符
%d
有符号十进制数
%e,%E
浮点数,e计数法
%f
浮点数,十进制计数法
%g,%G
根据数值不同自动选择%f或%e,%e格式在指数小于-4或者大于等于精度时使用
%i
有符号十进制整数(与%d相同)
%o
无符号八进制整数
%p
指针
%s
字符串
%u
无符号十进制数
%x,%X
使用十六进制数0f的无符号十六进制整数
%%
打印一个百分号
printf()的标志
符号
说明
示例
-
项目左对齐,即,会把项目打印在字段的左侧开始处
示例: “%-20s”
+
有符号的值若为正,则显示带加号的符号;若为负,则显示带减号的符号
示例: “%+6.2f”
(空格)
有符号的值若为正,则显示时带前导空格(但是不显示符号);若为负,则带减号符号,+标志会覆盖空格标志
示例: “% 6.2f”
#
使用转换说明的可选形式。若为%o格式,则以0开始;若为%x和%X格式 ,则以0x或0X开始。对于所有的浮点形式,#保证了即使不跟任何数字,也打印一个小数点字符。对于%g和%G格式,它防止尾随0被删除
示例: “%#o”, “%#8.0f”, “%+#10.3E”
0
对于所有的数字格式,用前导零而不是空格填充字段宽度。如果出现-标志或者指定了精度(对于整数)则忽略该标志
示例: “%010d”, “%08.3f”,"%02X"
一个示例
输出浮点数的科学计数法形式,其中e前面的小数保留5位数字。需要注意的是,科学计数法表示的浮点数指数部分有三位的也有两位,看编译器和不同的标准。
#include
int main()
{
printf("%.5e\n", 3.12346823e10);
return 0;
}
|