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

use*_*671 4 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;
}
Run Code Online (Sandbox Code Playgroud)

Tar*_*rka 17

%3d 可细分如下:

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

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

有关更多信息,请参见http://www.cplusplus.com/reference/clibrary/cstdio/printf/


Pot*_*ter 11

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

来自man printf:

可选的十进制数字字符串,指定最小字段宽度.如果转换后的值的字符数少于字段宽度,则将在左侧填充空格(如果已给出左调整标记,则填充右侧)以填充字段宽度.


小智 6

看看这里:

Print("%3d",X);

  • 如果 X 为 1234,则打印1234
  • 如果 X 为 123,则打印123
  • 如果 X 为 12,则打印_12where_是前导的单个空白字符。
  • 如果 X 为 1,则打印__1 where__是两个前导空格字符。