在 C 中打印缩进
Printing with indentation in C
哪种方式最适合将所有输出排列在右边?
示例:对于 2 的幂:
2
4
8
16
32
64
128
256
512
1024
2048
...
134217728
如果我的最后一个数字有 N 个数字,如何打印第一个数字(在本例中只有一个数字),左边有 (N - 1) 个空格?
您可以使用 printf
的宽度技巧,如下所述:Printf reference
printf ("Width trick: %*d \n", 5, 10);
会产生
Width trick: 10
您可以使用 *
向 printf()
提供计算字段宽度。所以你计算出最大位数后,你可以这样做:
printf("%*d\n", max_digits, value);
示例
int main(int argc, char *argv[]) {
for (int i=2; i<134217729;i=i*2)
printf("%*d\n",20, i);
return 0;
}
输出
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
哪种方式最适合将所有输出排列在右边?
示例:对于 2 的幂:
2
4
8
16
32
64
128
256
512
1024
2048
...
134217728
如果我的最后一个数字有 N 个数字,如何打印第一个数字(在本例中只有一个数字),左边有 (N - 1) 个空格?
您可以使用 printf
的宽度技巧,如下所述:Printf reference
printf ("Width trick: %*d \n", 5, 10);
会产生
Width trick: 10
您可以使用 *
向 printf()
提供计算字段宽度。所以你计算出最大位数后,你可以这样做:
printf("%*d\n", max_digits, value);
示例
int main(int argc, char *argv[]) {
for (int i=2; i<134217729;i=i*2)
printf("%*d\n",20, i);
return 0;
}
输出
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728