【问题标题】:C - printf - remove leading zeroesC - printf - 删除前导零
【发布时间】:2016-01-15 17:12:05
【问题描述】:

当我像这样使用 printf 时:

printf("%.*ju ", size_length, (uintmax_t) thing->fts_statp->st_size);

它添加了前导零以使thing->fts_statp->st_size 的长度为size_length(这在某种程度上是可以接受的,因为它的大小合适,但在视觉上没有吸引力)。有没有办法用 printf 打印尺寸信息而不这样做?

编辑以获取更多信息:

目前打印如下:

00012

00234

51234

01203

00001

我想打印出来

   12

  234

51234

 1203

    1

【问题讨论】:

  • 也许您可以考虑展示一个示例,说明它当前的外观以及您希望它的外观。否则,您得到的任何答案都可能会因其他人对您的描述的解释而产生偏差,即使描述清楚,也不一定能奏效。
  • @mah 刚刚编辑,谢谢建议
  • 前导 0 不是 C 中的八进制表示吗?
  • @user3121023 效果很好,. 只影响数字类型的情况吗?

标签: c printf


【解决方案1】:

如果你只想要空格填充:

printf("% *ju ", size_length, (uintmax_t) thing->fts_statp->st_size);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 2015-07-29
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多