“%3d”在printf语句中的含义是什么?

时间:2010-05-10 20:10:30

标签: 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) {
        for(i=0; i<4; ++i)
            printf("%3d ", num[t][i]);
        printf("\n");
    }
    return 0;
}

8 个答案:

答案 0 :(得分:17)

%3d可以按如下方式细分:

  • %表示“在此处打印变量”
  • 3表示“使用至少3个空格来显示,根据需要填充”
  • d表示“变量将是一个整数”

将这些放在一起,就意味着“打印整数,至少占用3个空格”

有关详细信息,请参阅http://www.cplusplus.com/reference/clibrary/cstdio/printf/

答案 1 :(得分:11)

这是一个格式说明符,用于在三个(至少)数字(d)中打印十进制数字(3)。

来自man printf

  

可选的十进制数字字符串   指定最小字段宽度。如果   转换后的值较少   它的字符数比字段宽度大   将在左侧填充空格   (或右,如果左调整标志   已被给予填写该领域   宽度。

答案 2 :(得分:4)

看看这里:

Print("%3d",X);

  • 如果X为1234,则会打印1234
  • 如果X为123,则会打印123
  • 如果X为12,则会打印_12,其中_是一个领先的单个空白字符。
  • 如果X为1,则会打印__1,其中__是两个领先的whitespacce字符。

答案 3 :(得分:0)

这是格式规范。 %3d表示:将参数打印为小数,宽度为3位。

答案 4 :(得分:0)

从字面上看,它意味着打印一个用空格填充到三位数的整数。 %引入格式说明符,3表示3位数,d表示整数。因此,num [t] [i]的值作为诸如“1”,“2”,“12”等的值被打印到屏幕上。

答案 5 :(得分:0)

2/3或任何整数是填充/宽度。这意味着ex为3,最小3空格如果我们打印a = 4然后它打印像4,这里两个空格留在4之前因为它是一个字符

答案 6 :(得分:0)

启示现有答案的一个例子:

printf("%3d" , x);

当:

x是1234张1234

x是123张123

x是12张12,带有额外的填充(空格)

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

答案 7 :(得分:0)

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

int a = 3;
printf("|%-3d|", a);

输出:

|3  |

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

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

给出:

|    3|