【发布时间】:2012-12-21 15:31:06
【问题描述】:
我找到了以下行:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
而我想知道%.*s的含义
【问题讨论】:
-
你试过文档了吗?
-
我不知道答案,但用 Google 花了大约一分钟时间。
标签: c
我找到了以下行:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
而我想知道%.*s的含义
【问题讨论】:
标签: c
%.*s 格式的意思是“使用 n 个字符的字段宽度打印字符串,其中 n 是从下一个参数中读取的”。
所以在这里,它以size * rxed 个字符的宽度打印buffer。 (必要时用空格填充)
【讨论】:
我强烈建议您阅读手册...
.* 在格式字符串中的意思是:
精度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。
详情可见here。
所以你没有提供任何细节,但如果:size * rxed 的结果是 5,那么你可以这样做:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
或
asprintf(&c, "%s%5s", *msg_in, buffer)
同样的效果。
【讨论】: