溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言printf()輸出格式是什么

發(fā)布時間:2023-03-22 16:26:34 來源:億速云 閱讀:120 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“C語言printf()輸出格式是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

C語言printf()輸出格式

主要說明格式字符串的基本思想。

格式字符串綱要

[標(biāo)志] ?? [輸出最少寬度] ?? [.精度] ?? [長度] ?? 類型 \fcolorbox{#ffae42}{#2E8B57}{\textcolor{White}{[標(biāo)志]\;[輸出最少寬度]\;[.精度]\;[長度]\;類型}} [標(biāo)志][輸出最少寬度][.精度][長度]類型

因為權(quán)重是自右向左,所以先從右側(cè)往左介紹,有時這個很重要,比如字符類型進行修飾總讓人很疑惑。

  • 類型稱為轉(zhuǎn)換類型更合適;

  • 長度 : 并非確切長度,它僅僅是修飾符,h代表短型,l代表長型,如果用ll雖然也可以,但目前很多編譯器已經(jīng)開始提示用其它替代方案;

  • [.精度] : 浮點型小數(shù)位數(shù)未指定精度時,隱含的精度為6位。如果是字符串,只取字符串中左端設(shè)置精度數(shù) 字符(n個字符,精度為n);

  • 輸出最少寬度 : 如果實際長度低于設(shè)置,那么填充就起作用;

  • 標(biāo)志的功能主要是是對齊填充補充 ,主要為左對齊(-) 、右對齊(省略既是右對齊,字符串類型可以用+)、 補充(#)、空格(若符號為正,則顯示空格,負(fù)則顯示"-")、填充(0);

類型

轉(zhuǎn)換說明A備注轉(zhuǎn)換說明B備注
%d或%i有符號十進制整數(shù)%u無符號十進制整數(shù)
%f浮點數(shù)(包括float和doulbe)%e(%E)浮點數(shù)[e-(E-)記數(shù)法]
%g(%G)浮點數(shù)不顯無意義的零"0",甚至小數(shù)點

%c字符,實際上是int,可以用%d打印%s字符串
%x(%X)十六進制無符號整數(shù)%o八進制無符號整數(shù)
%a(%A)浮點數(shù)、十六進制數(shù)字和p-(P-)記數(shù)法(C99),p代表2,類似于e代表10

%p

指針

%%百分號自身輸出

長度

  • h 代表short,一般用%hd

  • l 代表long,可以修飾%ld 、%lu、 %lf、%lo,修飾%lc,因為c存儲的是int型,可以用l修飾,但權(quán)重自右向左,還是會輸出字符,而不是數(shù)字。

  • ll 代表long long,目前很多編譯器已經(jīng)不太推薦用ll修飾了,他們有專業(yè)的推薦。

  • %zd專門為sizeof strlen() 等size_t 返回類型準(zhǔn)備的格式。

精度

采用一段代碼說明更實際

   //加上F防止隱性轉(zhuǎn)化,因為代碼風(fēng)格中用小寫字母l會被誤認(rèn)為數(shù)字1,所以統(tǒng)一采用大寫的L、F
    float PI = 3.1415F;
    //先優(yōu)先精度(.14)這就占了三位,在向左設(shè)置顯示寬度,沒有設(shè)置對齊方式,那么默認(rèn)右側(cè)對齊左側(cè)填充,
    //左側(cè)填充沒有設(shè)置,那么填充空格,所以顯示 □□3.14
    printf("%6.2f\n", PI);
    //設(shè)置為0會被四舍五入,顯示3
    printf("%.0f\n", PI);

輸出最少寬度

    //沒有設(shè)置精度,位數(shù)不夠左側(cè)填充空格,如果設(shè)置為%05d則填充0,如果設(shè)置左對齊,也不可能右側(cè)填充0
    //如果是字符串填充0是無效的,只填充空格
    printf("%5d \n", d);

標(biāo)志

  • - : 左對齊

  • 省略既是右對齊,字符串可以用+

  • 0 : 填充0,只限于左側(cè)填充

  • # : 對c,s,d,u類無影響;對o類,加前綴數(shù)字0;對x類,加前綴0x;對X類,加前綴0X;對e,g,f 類當(dāng)結(jié)果有小數(shù)時才給出小數(shù)點。

  • 空格 : 若符號為正,則顯示空格,負(fù)則顯示"-"

 %#o,%#x這樣使用是合理的,如果在e,g,f中使用#,沒有設(shè)置精度,那么因為數(shù)據(jù)不同顯示可長可短,所以基本作為補充前綴使用。
補充和填充是有區(qū)別的,# 并不是Excel中格式設(shè)置的那些作用。

“C語言printf()輸出格式是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI