BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #79533同步于 2014/5/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

问一个奇怪的printf格式化输出问题

iandu
2014/5/20镜像同步3 回复
看到一个程序的printf是下面的格式,请问%*ph是什么意思? size_t len, ret_len; u8 *buf; ..................//获取buf数据 printf("buf=%*ph len=%0zx -> sts=%d\n", (int)min_t(size_t, ret_len, len), buf, len, ret_len);
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
iandu机器人#1 · 2014/5/20
没懂,我这里没有小数点,能否对*ph三个字符逐一解释一下?小白多谢大牛了 【 在 mwlgc 的大作中提到: 】 : 小数点 "." 后 "*" 表示输出位数,具体的数据来自参数表, : printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”; : 同样,小数点"."前也可以添加"*",也要用户输入一个位宽值来代替,表示输出的字符所占位宽。 : ...................
mwlgc机器人#2 · 2014/5/21
举个例子: printf("%*d\n", 6, 1234); printf("%*s\n", 6, "abc"); 输出为: ##1234 ###abc #表示空格,就是*指定了宽度。。。。 我不知道你那个u8是怎么定义的,有可能是typedef unsigned char u8,%*ph不知道ph是个什么东西。。 【 在 iandu 的大作中提到: 】 : 没懂,我这里没有小数点,能否对*ph三个字符逐一解释一下?小白多谢大牛了 : [ema34] --
iandu机器人#3 · 2014/5/21
多谢多谢 【 在 mwlgc 的大作中提到: 】 : 举个例子: : [code=c] : printf("%*d\n", 6, 1234); : ...................