用括号括起来时%4d的用途是什么?

时间:2017-06-01 19:46:19

标签: c

我的C代码如下,

int main (void)
{
    int n = 5;

    printf ("%4d\n",n);

    return 0;
}

它给出了输出5前导四个空格。

但是如果我想打印"     (5)"那么代码是什么?有四个前导空格(但是"    (21)"有三个前导空格,或者"   (987)"有两个前导空格等?)

与此同时,我尝试了printf ("%4(d)\n",n);printf ("(%4d)\n",n);,但这两个人分别给了(d)( 5)

3 个答案:

答案 0 :(得分:7)

您需要分两步完成。首先创建一个字符串,其中包含括号括起来但没有填充的数字:

char numstr[32];
sprintf(numstr, "(%d)", n);

然后使用%s格式在带填充的字段中打印它。

printf("%4s\n", numstr);

答案 1 :(得分:2)

回答您的问题。

您已打印输出int值,“4”告诉beans.xml将输出格式化为4个字符的长度。

更详细的信息。

  

char n $:n是使用此格式显示的参数编号   说明符,允许提供的参数输出多次   次,使用不同的格式说明符或不同的顺序。如果有的话   单占位符指定一个参数,所有其余的   占位符还必须指定一个参数。

例如

printf

For more information about the format specifier usage in C.

答案 2 :(得分:0)

使用%4d时,将printf的输出格式定义为4个字符的长度。