%-4d是用於C語言輸出的格式字串,可以用於printf類函式,包括printf,sprintf,fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。
各種函式中的含義是相同的,都是按照10進位制形式輸出整數值,輸出值範圍如果不足4列寬度,那麼按4列寬度輸出,否則按實際寬度輸出。輸出結果數值在左側,右側用空格補足。
%-4d的四個字元每個都有各自的功能,具體如下:
1%:格式字串的引導標識,每個格式字串必須以%開頭。
2-:輸出的內容左側為有效資料,右側為補足字元。
34:輸出佔4列寬度,不足用空格補齊,超出按實際長度輸出。
4d:按照10進位制整型輸出。
下面這個例子輸出兩行資料,每行五個數值:
#include?<stdio.h>
int?main()
{
printf("%-4d%-4d%-4d%-4d%-4d\n",1,12,123,123412,12345);
printf("%-4d%-4d%-4d%-4d%-4d\n",23,123,2341,1,123456);
return?0;
}輸出結果為
1???12??123?12341212345
23??123?23411???123456從中可以看到其作用及缺陷。
對於低於4位的整數,可以很好的實現輸出及對齊效果,比如例子中的第一列和第二列。
如果輸出位數為4位,那麼輸出值和下一個輸出間不會有分隔符,比如第二行的34兩列,本來是2341和1,但輸出的效果是一個數23411。
當數值超過4位時對齊效果會被打亂,同時與下一個輸出見沒有間隔。
比如第一行的第四列,輸出數值為123412,與下一個12345沒有分隔,同時第五列的12345本應與第二行的123456左對齊,但由於123412侵佔了該位置,導致二者無法達成對齊效果。
所以%-4d這類格式輸出,僅使用與資料規模在四位數以下的情況,超出則會出錯。
如果在資料中存在負值,則負值僅可以為三位數或以下,因為輸出的符號也同樣會佔一列寬度。
%-4d是用於C語言輸出的格式字串,可以用於printf類函式,包括printf,sprintf,fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。
各種函式中的含義是相同的,都是按照10進位制形式輸出整數值,輸出值範圍如果不足4列寬度,那麼按4列寬度輸出,否則按實際寬度輸出。輸出結果數值在左側,右側用空格補足。
%-4d的四個字元每個都有各自的功能,具體如下:
1%:格式字串的引導標識,每個格式字串必須以%開頭。
2-:輸出的內容左側為有效資料,右側為補足字元。
34:輸出佔4列寬度,不足用空格補齊,超出按實際長度輸出。
4d:按照10進位制整型輸出。
下面這個例子輸出兩行資料,每行五個數值:
#include?<stdio.h>
int?main()
{
printf("%-4d%-4d%-4d%-4d%-4d\n",1,12,123,123412,12345);
printf("%-4d%-4d%-4d%-4d%-4d\n",23,123,2341,1,123456);
return?0;
}輸出結果為
1???12??123?12341212345
23??123?23411???123456從中可以看到其作用及缺陷。
對於低於4位的整數,可以很好的實現輸出及對齊效果,比如例子中的第一列和第二列。
如果輸出位數為4位,那麼輸出值和下一個輸出間不會有分隔符,比如第二行的34兩列,本來是2341和1,但輸出的效果是一個數23411。
當數值超過4位時對齊效果會被打亂,同時與下一個輸出見沒有間隔。
比如第一行的第四列,輸出數值為123412,與下一個12345沒有分隔,同時第五列的12345本應與第二行的123456左對齊,但由於123412侵佔了該位置,導致二者無法達成對齊效果。
所以%-4d這類格式輸出,僅使用與資料規模在四位數以下的情況,超出則會出錯。
如果在資料中存在負值,則負值僅可以為三位數或以下,因為輸出的符號也同樣會佔一列寬度。