C語言格式控制符和轉義字元

2021-04-12 19:56:22 字數 3031 閱讀 3047

1.         格式控制符

格式輸出printf 作用是向終端輸出若干個型別任意的資料。

格式:printf (格式控制符,輸出列表)

1)         格式控制符

l          %  格式說明引導符。

l          -  指定左對齊輸出。

l          0  指定空位填零。

l          m.n  指定輸出域寬度及精度

m表示資料最小寬度,如果實際資料寬度》m,按實際資料寬度輸出,如果實際資料寬度l          l,h    輸出長度的修正

l對整型指定長整型long

例:%ld , %lx , %lo , %lu

l對實型指定雙精度double

例:%lf

h只用於整型的格式字元修正為short

例:%hd , %hx , %ho , %hu

2)         格式字元 指定輸出項的資料型別和輸出格式。

l          d  有符號十進位制整數。

l          o  無符號八進位制數。

l          x   無符號十六進製制數(小寫的x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數,大寫的x則用大寫的abcdef來表示10到15之間的數)

l          u不帶符號的十進位制整數。

l          c    輸出乙個字元。

l          s  輸出乙個字串

l          e  以指數形式輸出實型數。

l          f        以小數形式輸出實型數(單精度,或稱浮點數)。

l          g   自動決定輸出格式為e和f中較短的一種,不列印無效的零。

l%   輸出%

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

%p 指標

注意:

?         對於單精度數,使用 %f 格式符輸出時,僅前7位是有效數字,小數

6位(有效數字定義:在乙個近似數中,從左邊第乙個不是0的數字起,到精確到末位數止,所有的數字,都叫這個近似數字的有效數字)。

?         對於雙精度數,使用 %lf 格式符輸出時,前16位是有效數字,小數6

位。

?         編譯程式只是檢查printf 函式的呼叫形式,不分析格式控制字串,如果格式字元與輸出項的型別不匹配,不進行型別轉換(輸出的數為隨機)。

?         格式控制字串中可以包含轉義字元。

?         格式控制字串中的普通字元則原樣輸出

?         輸出項的引數除了常數、變數外還可以是表示式、函式呼叫。

?         %g,%f和%e這三個格式用於列印浮點值,%g格式用於列印那些不需要按列對齊的浮點數特別有用,其作用有:

a)         去掉該數尾多餘的零(沒有達到六位的數)

b)         保留六位有效數字(多餘六位的)

%e格式用於列印浮點數時,一律顯式地使用指數形式

例如:輸出圓周率時是:3.141593e+00

它們的區別:

%g格式列印出的數是總共6位有效數字

%e格式列印出小數點後的6位有效數字

%f禁止使用指數形式來表示浮點數,因此圓周率輸出為:3.141593(但注意它的精度要求:也是小數點後6位有效數字)

?         %e和%g只是在輸出時用大寫字母(e)代替了小寫字母(e)

?         %%格式用於列印乙個%字元。

?         輸出正負號的技巧,例如:

printf("%+d %+d %+d\n",-5,0,5);

只要在中間加個「+」號就行,作用是輸出符號位(即,數的正負號)

如果不希望正數的前面出現『+』號,只要在「% d」中間加個「 」號(即空格)就行,例如:

int i;

for(i=-3;i<=3;i++)

printf("% d\n",i);    // 注意%和d之間有乙個空格

2.         轉義字元

\a: 蜂鳴,響鈴

\b: 回退:向後退一格

\f: 換頁

\n: 換行,游標到下行行首

\r: 回車,游標到本行行首

\t: 水平製表

\v: 垂直製表

\\: 反斜槓

\': 單引號

\": 雙引號

\?: 問號

\ddd: 1到3位八進位制數所代表的字元

\xhh: 1到2位十六進製制數所代表的字元

\0: 空字元(null),什麼都不做

注: l          \v垂直製表和\f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。

l          \n其實應該叫回車換行。換行只是換一行;\r回車只是回到行首。

l          \t 游標向前移動四格或八格,可以在編譯器裡設定

l          \' 在字元裡(即單引號裡)使用。在字串裡(即雙引號裡)不需要,只要用 ' 即可。 例:

如果在字元'a'中直接使用',就會出現這種情形:'a'' ,編譯器會報錯,因為編譯器會認為多寫了乙個單引號。

所以在字元中時,必須使用\',以避免歧義性。

如果為了在字串裡面新增乙個單引號,直接用單引號 '  即可,如果用轉義字元 \' 的話就會把\'兩者直接算進去。

C語言轉義字元和格式控制符參考

轉義字元參考 a 蜂鳴,響鈴 b 回退 向後退一格 f 換頁 n 換行,游標到下行行首 r 回車,游標到本行行首 t 水平製表 v 垂直製表 反斜槓 單引號 雙引號 問號 ddd 三位八進位制 xhh 二位十六進製制 0 空字元 null 什麼都不做 注 1,v垂直製表和 f換頁符對螢幕沒有任何影響...

C語言轉義字元和格式控制符參考

轉義字元參考 a 蜂鳴,響鈴 b 回退 向後退一格 f 換頁 n 換行,游標到下行行首 r 回車,游標到本行行首 t 水平製表 v 垂直製表 反斜槓 單引號 雙引號 問號 ddd 三位八進位制 xhh 二位十六進製制 0 空字元 null 什麼都不做 注 1,v垂直製表和 f換頁符對螢幕沒有任何影響...

C語言 格式控制符

d 以帶符號的十進位制形式輸出整數 o 以八進位制無符號形式輸出整數 x 以十六進製制無符號形式輸出整數 u 以無符號十進位制形式輸出整數 c 以字元形式輸出,只輸出乙個字元 s 輸出字串 f 以小數形式輸出單,雙精度數,隱含輸出六位小數 e 以指數形式輸出實數 g 選用 f或 e格式中輸出寬度較短...