可能重复:
c中的printf中的“%.*s”是什么意思
我知道这个问题肯定在其他地方被问过,但是搜索“%.*s”对 SO 没有任何意义。有人可以向我解释以下行吗?
printf("%.*s", len, buffer);
可能重复:
c中的printf中的“%.*s”是什么意思
我知道这个问题肯定在其他地方被问过,但是搜索“%.*s”对 SO 没有任何意义。有人可以向我解释以下行吗?
printf("%.*s", len, buffer);
它将输出限制为最多len
字符。开始'.
精度'; *
说“使用参数列表中的一个int
来确定精度”。请注意,如果“字符串” ( buffer
) 长于 ,则甚至不必以 null 结尾len
。
所有这些都可以在printf()
.
这里有一个很好的表格,显示了所有不同的格式说明符可以为您做什么。对于您的示例,假设您有一个缓冲区和一个长度定义为:
char buf[] = "Hello World";
len = 5;
您可以使用%.*s
打印完整字符串的一部分:
printf("%.*s", len, buffer);
在这种情况下,这将输出Hello
前 5 个(基于 1)字符。请注意,这与以下内容相同:
printf("%.5s", buffer);