【发布时间】:2018-04-22 14:39:31
【问题描述】:
printf("%*d",变量);
我想知道printf函数中(*)有什么用
【问题讨论】:
标签: arguments printf format-specifiers
printf("%*d",变量);
我想知道printf函数中(*)有什么用
【问题讨论】:
标签: arguments printf format-specifiers
星号用于指定值的宽度,printf 接受 3 个参数:
printf("%*d", width, value);
例子:
printf("%*d", 3, 16);
// 输出:“16”(printf 加一个空格以遵守指定的宽度)
【讨论】:
。后跟整数或 *,或两者都不指定精度 的转换。在使用 * 的情况下,精度为 由 int 类型的附加参数指定。如果这个值 参数是否定的,它被忽略。如果数字和 * 都不是 使用时,精度为零。具体见下表 精度的影响。
对于整数说明符(d、i、o、u、x、X):精度指定要写入的最小位数。如果要写入的值小于此数字,则结果用前导零填充。即使结果更长,该值也不会被截断。精度为 0 表示不为值 0 写入任何字符。 对于 a、A、e、E、f 和 F 说明符:这是要在小数点后打印的位数(默认为 6)。 对于 g 和 G 说明符:这是要打印的最大有效位数。 对于 s:这是要打印的最大字符数。默认情况下,所有字符都会打印,直到遇到结束的空字符。 如果指定的周期没有明确的精度值,则假定为 0。
printf ("Width trick: %*d \n", 5, 10)
输出
Width trick: 10