簡體   English   中英

“%3d”在printf語句中的含義是什么?

[英]What does “%3d” mean in a printf statement?

在這段代碼中,符號%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;
}

%3d可以分解如下:

  • %表示“在此處打印變量”
  • 3表示“使用至少3個空格來顯示,根據需要填充”
  • d表示“變量將是一個整數”

將這些放在一起,就意味着“打印整數,至少占用3個空格”

有關更多信息,請參見http://www.cplusplus.com/reference/clibrary/cstdio/printf/

這是一個格式說明符,用於在三個(至少)數字( 3 )中打印十進制數( d )。

來自man printf

可選的十進制數字字符串,指定最小字段寬度。 如果轉換后的值的字符數少於字段寬度,則將在左側填充空格(如果已給出左側調整標記,則填充右側)以填充字段寬度。

看看這里:

Print("%3d",X);

  • 如果X是1234,則打印1234
  • 如果X是123,則打印123
  • 如果X為12,則打印_12 ,其中_是前導單個空白字符。
  • 如果X為1,則打印__1 ,其中__是兩個前導whitespacce字符。

2/3或任何整數是填充/寬度。這意味着ex為3,最小3空格如果我們打印a = 4然后它打印像4,這里兩個空格在4之前,因為它是一個字符

這是一種格式規范。 %3d表示:將參數打印為小數,寬度為3位。

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

啟發現有答案的一個例子:

printf("%3d" , x);

什么時候:

x是1234張打印1234

x是123張打印123

x是12張打印12 ,帶有額外的填充(空格)

x是1打印1帶有兩個額外的填充(空格)

您可以指定%和d之間的字段寬度(對於十進制)。 它表示打印的字符總數。 正如另一個答案中所提到的,正值對齊輸出並且是默認值。 左值為負值 - 對齊文本。 例:

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

輸出:

|3  |

您還可以使用*字符將字段寬度指定為附加參數:

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

這使:

|    3|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM