printf ( print format )函数是接触C/C++之后接触的第一个函数,它的功能除了输出hello world外,更重要的是进行格式化输出,比如输出整数的%d,输出小数的%f,%lf 等等。
printf 格式化输出的完整格式为:% [flag] [width] [.precision] type 其中,常用等级为 type > [.precision] > [flag] > [width] 注意,实际使用的时候不带 [ ] .
1. type
type 用法说明
%c 输出一个字符
%s 输出字符串
%hd %d %ld 以十进制输出short,int,long类型变量
%ho %o %lo 以八进制输出short,int,long类型变量
%hx %x %lx 以十六进制输出short,int,long类型变量,且字母小写
%hX %X %lX 以十六进制输出short,int,long类型变量,且字母大写
%#hx %#x %#lx 加上#号,在前边加上0x,比如十六进制的a123变为0xa123
%f %lf 以十进制输出 float,double 类型变量
%e %le 以科学技术法输出 float,double 类型变量,且e为小写,比如0.0012就写为1.2e-3
%E %lE 以科学技术法输出 float,double 类型变量,且e为大写,比如0.0012就写为1.2E-3
%g %lg 以科学技术法或者十进制输出 float,double 类型变量,他会对比十进制输出和科学计数法哪个字符长度短,就用哪个输出,比如0.000012用十进制表示需要8个字符,用科学计数法1.2e-5只需要6个字符,则用科学计数法输出
2. [.precision]
对于小数,[.precision] 指定输出精度,即输出保留到小数点后多少位(主要用法) 对于整数,则表示最短输出长度,位数不足会在前边补0,比如 %.4d 输出23,输出为0023 对于字符串,表示最大输出长度,即截取字符串输出。
例子:
3. [flag]
flag 用法说明
- 多行输出的时候,左对齐输出
+ 带正负号输出
空格 带正负号输出,不过把正号换成了空格
# 对于整数,要求输出禁止前缀,比如0x;对于小数,则强迫输出小数点之后的
4. [width]
指定最小输出长度,不足部分用空格补齐,使输出比较好看,当数据长度大于width时,width不再对数字生效