-1

可能重复:
c中的printf中的“%.*s”是什么意思

我找到了以下行:

asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)

我想知道%.*s

4

2 回答 2

4

该格式的意思是“使用n 个%.*s字符的字段宽度打印一个字符串,其中n是从下一个参数中读取的”。

所以在这里,它buffersize * rxed字符宽度打印。(必要时用空格填充)

于 2012-12-21T15:32:46.523 回答
2

我强烈建议阅读手册...

.*在格式字符串中表示:

精度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。

细节可以在这里看到。

所以你没有提供任何细节,但如果:的结果size * rxed是 5,那么你可以这样做:

asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)

或者

asprintf(&c, "%s%5s", *msg_in, buffer)

达到同样的效果。

于 2012-12-21T15:34:38.353 回答