1

これは可能ですか?値を印刷する場合、たとえば、実際の出力の前に 4 つではなく 3 つのスペースを使用して印刷できますか?

4

1 に答える 1

4

printf には、最小フィールド幅を動的に指定するための * 形式があります。

#include <stdio.h>
int main(int argc, char *argv[])
{
    int value = 5;
    const char *name = "LaDonna";
    double value2 = 200.55;
    const char *space = " ";
    for (int width = 0; width < 10; width++)
        printf("%*d %*.2f %*s\n",width,value,width,value2,width + 5,name);
    for (int width=1; width < 5; width++)
        printf("%*s%d\n",width,space,width);
    return 0;
}

出力:

5 200.55 LaDonna
5 200.55 LaDonna
 5 200.55 LaDonna
  5 200.55  LaDonna
   5 200.55   LaDonna
    5 200.55    LaDonna
     5 200.55     LaDonna
      5  200.55      LaDonna
       5   200.55       LaDonna
        5    200.55        LaDonna
 1
  2
   3
    4
于 2012-09-16T22:05:54.250 に答える