我正在编写一个程序来显示数组中的所有信息。它必须以括号中的数组索引开头(例如 [2]
),并且它们必须彼此右对齐。
如果只是数字,我知道你可以这样做:
printf("%-10d", index);
但是用括号括起来会得到以下输出
[ 1]
[ 2]
...
[ 10]
[ 11]
当我真正想要的时候:
[1]
[2]
...
[10]
[11]
我该怎么做?
最佳答案
分两步进行:首先在临时缓冲区中构建一个非对齐的字符串,然后打印右对齐的字符串。
char buf[sizeof(index) * (CHAR_BITS + 2) / 3 + 4];
sprintf(buf, "[%d]", index);
printf("%-12s", buf);
关于c - printf 右对齐括号内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12253400/