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不再对数字生效