我正在编写一个显示数组中所有信息的程序.它必须从括号中的数组索引开始(例如[2]
),并且它们必须彼此正确对齐.
如果只是数字,我知道你可以这样做:
printf("%-10d", index);
Run Code Online (Sandbox Code Playgroud)
但是在其周围加上括号会产生以下输出
[ 1]
[ 2]
...
[ 10]
[ 11]
Run Code Online (Sandbox Code Playgroud)
当我真的想要它时:
[1]
[2]
...
[10]
[11]
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
分两步完成:首先在临时缓冲区中构建一个未对齐的字符串,然后打印右对齐的字符串.
char buf[sizeof(index) * (CHAR_BITS + 2) / 3 + 4];
sprintf(buf, "[%d]", index);
printf("%-12s", buf);
Run Code Online (Sandbox Code Playgroud)