在c中的sprintf语句中填充+ ve和-ve数

时间:2016-01-25 10:11:00

标签: c

我希望在单个表达式中将02作为023和-23作为-023打印时填充int 23,有什么办法可以吗?
       例如。        (不是一个完美的程序只是想解释我想做什么)

   int a=-23,b=23,c=-123,d=1;
   char arr[10];
   sprintf("arr,%d|%d|%d|%d",a,b,c,d);

o / p应该像

    arr = -023|023|-123|001

2 个答案:

答案 0 :(得分:2)

您可以在printf格式说明符中指定精度以指示最小位数,因此如果您想要至少3位数:

#include <stdio.h>

int main(void)
{
    int a = -23, b = 23, c = -123, d = 1, e = -2345;

    printf("|%.3d|%.3d|%.3d|%.3d|%.3d|\n", a, b, c, d, e);
    return 0;
}

输出:|-023|023|-123|001|-2345|

答案 1 :(得分:0)

  • 您可以使用以下代码。

    int main(void)
    {
      int a=-23,b=23,c=-123,d=1;
      char arr[10];
      printf("arr,%04d|%03d|%04d|%03d",a,b,c,d);
    }