C語言:printf的格式字串

來源:互聯網
上載者:User

printf的格式字串 %[標記] [ [ * ] [資料寬度] ] [.精確度]類型

 

+

-

0

#

最小寬度

精確度

類型

顯示符號

靠左對齊

(預設靠右對齊)

資料前填0

(靠右對齊時)

8進位加0

16進位加0x

10進位整數

或者*

例如.2

 

-

Y

-

-

Y

-

c

-

Y

-

-

Y

-

s

Y

Y

Y

-

Y

-

di

-

Y

Y

-

Y

-

u

-

Y

Y

Y

Y

-

o

-

Y

Y

Y

Y

-

x

Y

Y

Y

-

Y

Y

fega

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-表示該類型不需要這個選項

從上表看出只有資料寬度和對齊才是所有類型都支援的格式,指定寬度時預設靠右對齊

只有在指定最小寬度時,我們才能使用-,0標誌,這個時候的對齊和填充才有意義,實際上只要指定最小寬度,且資料不足這個寬度就一定會發生填充,以空白字元或者填充在資料前部或者填充在資料後部(視對齊情況而定)而0則是特指用0填充在資料前方,這樣做是為了讓資料對齊顯得好看,需要說明的是雖然很多類型支援靠左對齊和填充0,但是實際上這兩個選項是衝突的,靠左對齊就不可能填充0,填充0就不可能靠左對齊,靠左對齊的意思是說以空白符在資料之後進行填充

 

一些例子

 

"%12d"      資料寬度最少佔12個字元寬,如資料不足12個字元則資料靠右對齊

"%+-12d"   12d含義同上,不同之處在於列印符號,資料靠左對齊

"%#x"        資料3A列印成0X3a

"%.4f"       資料保留小數點後4位的精度

實際上printf的格式字串和sprintf是相同的

 

char buffer[100];

sprintf(buffer,"%10d",12);

printf("the string is %d bytes\n",strlen(buffer));

輸出the string is 10 bytes

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.