C/C++:printf 函数格式化输出,用法详细记录

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

经验分享 程序员 微信小程序 职场和发展