C++ 什么是%3d";在printf语句中是什么意思?

C++ 什么是%3d";在printf语句中是什么意思?,c++,printf,C++,Printf,在此代码中,符号%3d的作用是什么?我知道%表示引用一个变量 代码如下: #include <stdio.h> int main(void) { int t, i, num[3][4]; for(t=0; t<3; ++t) for(i=0; i<4; ++i) num[t][i] = (t*4)+i+1; /* now print them out */ for(t=0; t<3; ++t)

在此代码中,符号
%3d
的作用是什么?我知道%表示引用一个变量

代码如下:

#include <stdio.h>
int main(void)
{
    int t, i, num[3][4];
    for(t=0; t<3; ++t)
        for(i=0; i<4; ++i)
            num[t][i] = (t*4)+i+1;
    /* now print them out */
    for(t=0; t<3; ++t) {
        for(i=0; i<4; ++i)
            printf("%3d ", num[t][i]);
        printf("\n");
    }
    return 0;
}
#包括
内部主(空)
{
int t,i,num[3][4];

对于(t=0;t,它是一种格式说明符,用于以三(至少)位(
3
)打印十进制数(
d

手动打印f

可选的十进制数字字符串 指定最小字段宽度。如果 转换后的值具有更少的值 字符数大于字段宽度,则 将在左侧填充空格 (或如果左侧调整标志 已给出)以填写该字段 宽度


这是一种格式规范。%3d表示:将参数打印为十进制,宽度为3位。

字面意思是打印一个加空格的整数。%引入格式说明符,3表示3位,d表示整数。因此,num[t][i]的值作为一个值打印到屏幕上,如“1”、“2”、“12”等可按如下方式分解:

  • %
    表示“在此处打印变量”
  • 3
    表示“至少使用3个空格显示,根据需要填充”
  • d
    表示“变量将是一个整数”
把这些放在一起,它意味着“打印一个整数,最少占用3个空格”


有关更多信息,请参阅。2/3或任何整数都是padding/width。这意味着ex代表3,如果我们打印a=4,则最小3个空格,然后它会像4一样打印,这里4前面还剩下两个空格,因为它是一个字符,这是一个启发现有答案的示例:

printf("%3d" , x);
当:

x
is 1234打印
1234

x
is 123打印
123

x
is 12打印
12
,带有额外的填充(空格)

x
is 1打印的
1
带有两个额外的填充物(空格)

请看这里:

打印(“%3d”,X);

  • 如果X是1234,它将打印
    1234
  • 如果X是123,它将打印
    123
  • 如果X是12,它将打印
    \u 12
    ,其中
    \u
    是一个前导空格字符
  • 如果X为1,则打印
    \uuu 1
    ,其中
    \uuu
    是两个前导空格字符

您可以指定介于%和d(十进制)之间的字段宽度。它表示打印的字符总数。 另一个答案中提到的正值将右对齐输出,是默认值。 负值使文本左对齐。 例如:

输出:

|3  |
还可以使用*字符将字段宽度指定为附加参数:

int a = 3;
printf("|%*d|", 5, a);
其中:

|    3|

NITPoice:这可能是C代码,而不是C++。投票给上面的副本——我们不需要分开的“<代码> %ND <代码>意味着什么?“对于所有可能的
N
.opengroup.org都更好:你回答了一个非常老的问题,已经有了一些很好的答案。我看不到你的答案有任何附加值。那么,你发布它的原因是什么?
|    3|