格式轉換說明符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 int或unsigned 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...