程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言格式控制符和轉義字符基礎教程

C語言格式控制符和轉義字符基礎教程

編輯:關於C語言
 

1.         格式控制符

格式輸出printf 作用是向終端輸出若干個類型任意的數據。

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

1)         格式控制符

l          %  格式說明引導符。

l          -  指定左對齊輸出。

l          0  指定空位填零。

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

m表示數據最小寬度,如果實際數據寬度>m,按實際數據寬度輸出,如果實際數據寬度<m,左邊補空格。n對於實數來講表示n位小數,對於字符串來講,表示截取的字符個數

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'' ,編譯器會報錯,因為編譯器會認為多寫了一個單引號。

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

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

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved