[英]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);
1234
。 123
。 _12
,其中_
是前導單個空白字符。 __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.