printf函数格式化字符串讲解

参考c语言中文网

定义:

格式化字符串是包含3种对象类型的一个字符串。

1. 无格式字符
2. 特殊意义占位符
3. 转义序列

无格式字符:

一般的字符,可以直接复制到输出流。

特殊意义的占位符:

% [parameter] [flags] [width] [precision] [length] type

parameter :

若不为空,通常可以省略.  

flags :

flags字符为:-、+、#、0和空格五种.
flags含义
-左对齐,右边填补空格,缺省情况为右对齐
+输出符号,非负,会给输出加一个+号,若为负数,则会给输出加一个-号
#对o类,保证产生的值以0开头; 对x类,输出加0x; 对e,g,f类,确保始终包含一个小数点。对c,s,d,u类无影响.
空格输出为正时,给空格,输出为负时,给负号.
0表示用0来填充,使用d,i,u,o,x和X类型时,如果给出精度字段,零标志就被忽略。如果格式代码中出现了负号标志,零标志也没有效果。

width :

输出最小宽度,若实际位数多于width,则按照实际输出,若小于,则补空格或0.

precision :

精度格式符以.开头,如果输出为数字,表示小数的位数.如果输出为字符,则表示字符的个数.若超出精度,则截去超过的部分.  
  • 对于d、i、u、o、x和X类型的转换,精度字段指定将出现在结果中的最小的数字个数并覆盖0标志。如果转换后的值的位数小于宽度,就在它的前面插入零。
  • 对于e,E和f类型的转换,精度决定将出现在小数点之后的数字位数。
  • 对于s类型的转换,精度指定将被转换的最多字符数。

length :

长度格式为h,l两种.

type :

格式字符含义
c参数以unsigned char类型输出
d或i参数以一个十进制整数打印
u,o,x,X参数作为一个无符号值打印,u使用十进制,o使用八进制,x和X使用十六进制
e,E参数根据指数形式打印,
f参数按照常规的浮点格式打印
g,G参数以%f或%e的格式打印,取决于它的值。如果指数大于等于-4但小于精度字段就使用%f格式,否则使用指数格式
s打印一个字符串
pvoid*类型,指针值被转换为一串因编译器而异的可打印字符。

转义序列 :

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值