【问题标题】:Use of asterisk with format specifier in c在 c 中使用带有格式说明符的星号
【发布时间】:2018-04-22 14:39:31
【问题描述】:

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


我想知道printf函数中(*)有什么用

【问题讨论】:

标签: arguments printf format-specifiers


【解决方案1】:

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

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

例子:

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

// 输出:“16”(printf 加一个空格以遵守指定的宽度)

【讨论】:

    【解决方案2】:

    Reference

    。后跟整数或 *,或两者都不指定精度 的转换。在使用 * 的情况下,精度为 由 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
    

    【讨论】:

    • 据我所见,如果参数为负,则取其绝对值。 (在 GNU 编译器中测试)try thisor this
    猜你喜欢
    • 2021-10-29
    • 2011-11-03
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2016-04-24
    • 2016-03-10
    相关资源
    最近更新 更多