printf中的“%。* s”是什么意思?
我有一个代码片段,其中有一个
printf("%.*s\n")
%.*s
是什么意思?
您可以使用星号( *
)将宽度说明符/精度传递给printf()
,而不是将其硬编码到格式string中,即
void f(const char *str, int str_len) { printf("%.*s\n", str_len, str); }
我不认为上面的代码是正确的,但(根据这个printf()
描述) .*
意思
格式string中没有指定宽度,而是作为要格式化的参数前面的附加整数值参数。
所以这是一个宽度可以通过的string作为参数。
请参阅: http : //www.cplusplus.com/reference/clibrary/cstdio/printf/
.*
格式string中没有指定精度,而是作为要格式化的参数前面的附加整数值参数。
s
string