格式字符串的形式为: % [输出最小宽度] [.精度] [长度] 类型
例如,%d格式符表示 用十进制整形格式输出。%f表示用实型格式输出,%5.2f 格式表示输出宽度为5(包括小数点),并包含2位小数。
函数概要:
printf 函数用于打印格式化字符串到标准输出流。
函数原型:
#include <stdio.h>
...
int printf ( const char * format, ... );
参数解析:
-
format 参数
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
格式化占位符(以 % 开头)用于指明输出的参数值如何格式化。
格式化占位符的语法如下:
%[flags][width][.precision][length] specifier
每一个格式化占位符均以 % 开始,以转换字符结束。
-
flags(标志,可选)的内容即含义如下:
注:flags 可同时出现多个,且无顺序要求。 -
width(宽度,可选)是一个数值,用于指定最小字段的宽度
转换后的参数输出宽度至少要达到这个数值。如果参数的字符数小于该数值,则在参数左边(如果 flags 设置为 -,要求左对齐的话则在右边)填充一些字符。填充字符通常为空格,但是如果 flags 设置为 0,则填充字符为数字 0。
-
.precision(.精度,可选),通过点号(.)分隔字段的宽度和精度
- 对于字符串,它指定打印的字符的最大个数
- 对于整数,它指定打印的数字位数(必要时可加填充位 0 以达到宽度要求)
- 对于转换字符为 e、E 或f,它指定打印的小数点后的数字位数
- 对于转换字符为 g 或 G,它指定打印的有效数字位数
-
length(长度修饰符,可选)的值可以是 h、hh、l、ll 或 L
- hh 表示将相应的参数按 signed char 或 unsigned char 类型输出
- h 表示将相应的参数按 short 或unsigned short 类型输出
- l 表示将相应的参数按 long 或 unsigned long 类型输出
- ll 表示将相应的参数按 long long 或 unsigned long long 类型输出
- L 表示将相应的参数按 long double类型输出
-
specifier(转换字符,必选)的内容及含义如下:
注:如果 % 后边的字符不是转换字符,则其行为没有定义。