c - printf 右对齐括号内的数字

标签 c format printf

我正在编写一个程序来显示数组中的所有信息。它必须以括号中的数组索引开头(例如 [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/

相关文章:

c++ - 在 C++ 中,如果没有换行符,则不会打印字符串

Python - randint() 应该等于 C - rand()

c - OpenCV 使用带有灰度图像的 cvImageCreate() 失败,并且调整大小通常失败

android - 如何在android中像时间轴一样转换日期和时间?

java - 如何格式化从文件打印的数据?

go - go stringers 练习有问题

C: 声明指向函数的易失指针

c++ - 你如何获得函数的原始地址?

c - 完全没有错误,为什么?

awk - 如何使用printf多次打印一个字符?