在c中使用带格式说明符的星号

时间:2018-04-22 14:39:32

标签: arguments printf format-specifiers

  

的printf("%* d",变量);

我想知道printf函数中的(*)是什么用途

2 个答案:

答案 0 :(得分:0)

星号用于指定值的宽度,printf接受3个参数:

printf("%*d", width, value);

示例:

printf("%*d", 3, 16);

// output:“16”(printf添加一个空格以符合指定的宽度)

答案 1 :(得分:0)

Reference

  

。后跟整数或*,或两者都不指定精度   转换。在使用*的情况下,精度为   由int类型的附加参数指定。如果是这个值   论证是否定的,它被忽略了。如果既不是数字也不是*   使用时,精度为零。请参阅下表以获取确切的信息   精度的影响。

对于整数说明符(d,i,o,u,x,X):precision指定要写入的最小位数。如果要写入的值小于此数字,则结果将使用前导零填充。即使结果较长,也不会截断该值。精度为0表示没有为值0写入字符。 对于a,A,e,E,f和F说明符:这是小数点后要打印的位数(默认情况下,这是6)。 对于g和G说明符:这是要打印的最大有效位数。 对于s:这是要打印的最大字符数。默认情况下,将打印所有字符,直到遇到结束的空字符。 如果指定的句点没有显式的精度值,则假定为0。

 printf ("Width trick: %*d \n", 5, 10)

输出

Width trick:    10