可能重复:
c中的printf中的“%.*s”是什么意思
我找到了以下行:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
我想知道%.*s
该格式的意思是“使用n 个%.*s
字符的字段宽度打印一个字符串,其中n是从下一个参数中读取的”。
所以在这里,它buffer
以size * rxed
字符宽度打印。(必要时用空格填充)
我强烈建议阅读手册...
.*
在格式字符串中表示:
精度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。
细节可以在这里看到。
所以你没有提供任何细节,但如果:的结果size * rxed
是 5,那么你可以这样做:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
或者
asprintf(&c, "%s%5s", *msg_in, buffer)
达到同样的效果。