C語言轉換說明符

2021-08-02 20:06:11 字數 3367 閱讀 9887



格式轉換說明符printf() / scanf()

本文**:

表一 轉換說明符及作為結果的列印輸出

轉換說明

輸 出 %a

浮點數、十六進製制數字和p-記數法 (c99)

%a浮點數、十六進製制數字和p-記數法 (c99)

%c乙個字元 %d

有符號十進位制整數 %e

浮點數、e-記數法 %e

浮點數、e-記數法 %f

浮點數,十進位制記數法 %g

根據數值不同自動選擇%f或者%e。%e格式在指數小於-4或者大於等於精度時使用 %g

根據數值不同自動選擇%f或者%e。%e格式在指數小於-4或者大於等於精度時使用 %i

有符號十進位制整數 (與%d相同)

%o無符號八進位制整數 %p

指標(就是指位址)

%s字串 %u

無符號十進位制整數 %x

使用十六進製制數字0f 的無符號十六進製制整數 %x

使用十六進製制數字0f的無符號十六進製制整數

列印乙個百分號

表二 printf() 修飾符

修飾符意 義 標誌

五種標誌 (-、+、空格、# 和0) 都將在表三中描述,可以使用零個或多個標誌

digit(s)

字段寬度的最小值。如果該欄位不能容納要列印的數或者字串,系統會使用更寬的字段。示例:「%4d」

.digit(s)

精度。對於%e、%e和%f轉換,是將要在小數點的右邊列印的數字的位數。對於%g和%g轉換,是有效數字的最大位數。對於%s轉換,是將要列印的字元的最大數目。對於整數轉換,是將要列印的數字的最小位數;如果必要,要使用前導零來達到這個位數。只使用「.」表示其後跟隨乙個零,所以%.f與%.0f相同。示例:「%5.2f」列印乙個浮點數,他的字段寬度為5個字元,小數點後有兩個數字。 h

和整數轉換說明符一起使用,表示乙個short int或者unsigned short int型別數值。

示例:「%hu」、「%hx」和「%6.4hd」

hh和整數轉換說明符一起使用,表示乙個signed char或者unsigned char型別數值。

示例:「%hhu」、「%hhx」和「%6.4hhd」

j和整數轉換說明符一起使用,表示乙個intmax_t或uintmax_t值。

示例:「%jd」和「%8jx」

l和整數說明符一起使用,表示乙個long int或者unsigned long int型別值。

示例:「%ld」和「%8lu」

ll和整數說明符一起使用,表示乙個long long intunsigned long long int型別值 (c99)。

示例:「%lld」和「%8llu」

l和浮點轉換說明符一起使用,表示乙個long double值。

示例:「%lf」和「%10.4le」

t和整數轉換說明符一起使用,表示乙個ptrdiff_t值(與兩個指標之間的差相對應的型別) (c99)

示例:「

%td」

和「%12ti」 z

和整數轉換說明符一起使用,表示乙個

size_t

(sizeof

返回的型別

) (c99)

。 示例:「

%zd」

和「%12zx」

表三 printf()

的標誌

修飾符

意 義

專案是左對齊的,也就是說,會把專案列印在字段的左側開始處。示例:「%-20s」

有符號的值若為正,則顯示帶加號的符號;若為負,則帶減號的符號。示例:「%+6.2f」

(空格)

有符號的值若為正,則顯示時帶前導空格(但是不顯示符號);若為負,則帶減號符號。+標誌會覆蓋空格標誌。示例:「% 6.2f」

使用轉換說明的可選形式。若為%o格式,則以0開始;若為%x和%x格式,則以0x或0x開始,對於所有的浮點形式,#保證了即使不限任何數字,也列印乙個小數點字元。對於%g和%g格式,它防止尾隨零被刪除。示例:「%#o」、「%#8.0f」和「%+#10.3e」

對於所有的數字格式,用前導零而不是用空格填充字段寬度。如果出現-標誌或者指定了精度(對於整數)則忽略該標誌。示例:「%010d」和「%08.3f」

表四 ansic 中 scanf()的轉換說明符

轉換說明符

意 義 %c

把輸入解釋成乙個字元 %d

把輸入解釋成乙個有符號十進位制整數

%e,%f,%g, %a

把輸入解釋成乙個浮點數 (%a是c99標準)

%e,%f,%g,%a

把輸入解釋成乙個浮點數 (%a是c99標準)

%i把輸入解釋成乙個有符號十進位制整數 %o

把輸入解釋成乙個有符號八進位制數 %p

把輸入解釋成乙個指標(位址)

%s把輸入解釋成乙個字串;輸入的內容以乙個非空白字元作為開始,並且包含知道下乙個空白字元的全部字元 %u

把輸入解釋成乙個無符號十進位制整數

%x,%x

把輸入解釋成乙個有符號十六進製制整數

表五 scanf()的轉換修飾符

修飾符意 義

滯後賦值。示例:「%*d」

digit(s)

最大字段寬度;在達到最大字段寬度或者遇到第乙個空白字元時(不管哪乙個先發生都一樣)停止對輸入項的讀取。示例:「%10s」

hh把整數讀作signed char 或 unsigned char 。示例:「%hhd」「%hhu」

ll把整數讀作long long或者 unsigned long long (c99)。示例:「%lld」「%llu」

h,l或l

「%hd」和「hi」指示該值將會儲存在乙個short int中。

「%ho」「%hx」和「%hu」指示該值將會儲存在乙個unsigned short int中。

「%ld」和「%li」指示該值將會儲存在乙個long中。

「%lo」「%lx」和「%lu」指示該值將會儲存在乙個unsigned long中。

「%le」「%lf」和「%lg」指示該值以double型別儲存。將l(而非l)與e、f和g一起使用指示該值以long double型別儲存。

如果沒有這些修飾符,d、i、o和x指示int型別,而e、f和g指示float型別。

C語言格式轉換說明符

各項的意義介紹如下 1 型別 型別字元用以表示輸出資料的型別,其格式符和意義如下表所示 格式字元 意 義 d 以十進位制形式輸出帶符號整數 正數不輸出符號 o 以八進位制形式輸出無符號整數 不輸出字首0 x,x 以十六進製制形式輸出無符號整數 不輸出字首ox u 以十進位制形式輸出無符號整數 f 以...

C語言常見轉換說明符

今天看課程時偶然看到不怎麼常用的 u的語句,所以想把一些基本的轉換說明符歸納總結一下。轉換說明符 型別英文 d有符號整數 signed integer u無符號整數 unsigned integer c單字元 character s字串 string f浮點數 float values p指標值 p...

轉換說明符

a a 浮點數 十六進製制數字和p p 記數法 c99 c 字元 d 有符號十進位制整數 f 浮點數 包括float和doulbe e e 浮點數指數輸出 e e 記數法 g g 浮點數不顯無意義的零 0 i 有符號十進位制整數 與 d相同 u 無符號十進位制整數 o 八進位制整數 e.g.0123...