c語言中的格式符

2021-12-29 21:27:21 字數 1776 閱讀 3192

在turbo c中格式字串的一般形式為: [標誌][輸出最小寬度][.精度][長度]型別 其中方括號中的項為可選項。各項的意義介紹如下:

1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:

表示輸出型別的格式字元       格式字元意義

d                 以十進位制形式輸出帶符號整數(正數不輸出符號)

o                 以八進位制形式輸出無符號整數(不輸出字首o)

x                 以十六進製制形式輸出無符號整數(不輸出字首ox)

u                 以十進位制形式輸出無符號整數

f                 以小數形式輸出單、雙精度實數

e                 以指數形式輸出單、雙精度實數

g                 以%f%e中較短的輸出寬度輸出單、雙精度實數

c                 輸出單個字元

s                 輸出字串

2.標誌

標誌字元為-、+、#、空格四種,其意義下表所示:

標誌格式字元      標 志 意 義

-          結果左對齊,右邊填空格

+          輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號

#          對c,s,d,u類無影響;對o類, 在輸出時加前

綴o         對x類,在輸出時加字首0x;對e,g,f 類當結果有小數時才給出小數點

3.輸出最小寬度

用十進位制整數來表示輸出的最少位數。 若實際位數多於定義的寬度,則按實際位數輸出, 若實際位數少於定義的寬度則補以空格或0。

4.精度

精度格式符以「.」開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元, 則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。

5.長度

長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。

void main() abc

d本例第七行中以四種格式輸出整型變數a的值,其中「%5d 」要求輸出寬度為5,而a值為15只有兩位故補三個空格。 第八行中以四種格式輸出實型量b的值。其中「%f」和「%lf 」格式的輸出相同,說明「l」符對「f」型別無影響。「%5.4lf」指定輸出寬度為5,精度為4,由於實際長度超過5故應該按實際位數輸出,小數字數超過4位部分被截去。第九行輸出雙精度實數,「%8.4lf 」由於指定精度為4位故截去了超過4位的部分。第十行輸出字元量d,其中「%bc 」指定輸出寬度為8故在輸出字元p之前補加7個空格。

使用printf函式時還要注意乙個問題, 那就是輸出表列中的求值順序。不同的編譯系統不一定相同,可以從左到右, 也可從右到左。turbo c是按從右到左進行的。如把例2.13改寫如下述形式:

void main() i

這個程式與例2.13相比只是把多個printf語句改乙個printf 語句輸出。但從結果可以看出是不同的。為什麼結果會不同呢?就是因為printf函式對輸出表中各量求值的順序是自右至左進行 的。在式中,先對最後一項「-i--」求值,結果為-8,然後i自減1後為7。 再對「-i++」項求值得-7,然後i自增1後為8。再對「i--」項求值得8,然後i再自減1後為7。再求「i++」項得7,然後i再自增1後為8。 再求「--i」項,i先自減1後輸出,輸出值為7。 最後才求輸出表列中的第一項「++i」,此時i自增1後輸出8。但是必須注意, 求值順序雖是自右至左,但是輸出順序還是從左至右, 因此得到的結果是上述輸出結果。

摘自 meiyuli的專欄

C語言中的格式控制符

用在輸入 輸出函式scanf 和printf 中的格式控制部分,即第乙個逗號前的雙引號內 用來對輸出的資料 識別符號或表示式 進行格式說明,包括資料型別 長度 對齊方式 小數字數等。1.格式控制符的形式 0 m m.n l h 格式控制符 其中 裡面的內容是可選的 表示左對齊,預設情況下為右對齊 若...

C語言中的格式控制

c語言確實很強大,很自由,特別是輸入輸出時的格式控制,熟練這些格式控制問題,可以很方便的解決很多奇怪的問題。當然,scanf和printf兩個函式也因它們的自由度和安全性而備受批評,特別是在大型程式設計中,一般是盡可能避免用這兩個函式的。但是對於習慣用c和參加acm icpc的人來說,這兩個函式的重...

C語言中printf格式

轉換說明及作為結果的列印輸出 a 浮點數 十六進製制數字和p 記數法 c99 a 浮點數 十六進製制數字和p 記法 c99 c 乙個字元 d 有符號十進位制整數 e 浮點數 e 記數法 e 浮點數 e 記數法 f 浮點數 十進位制記數法 g 根據數值不同自動選擇 f或 e g 根據數值不同自動選擇 ...