天天看點

C語言初學者之轉義符和輸出控制符

轉義字元 意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 倒退(BS) ,将目前位置移到前一列 008
\f 換頁(FF),将目前位置移到下頁開頭 012
\n 換行(LF) ,将目前位置移到下一行開頭 010
\r 回車(CR) ,将目前位置移到本行開頭 013
\t 水準制表(HT) ,一般相當于四個空格,或者 tab 鍵的功能 009
\v 垂直制表(VT) 011
\’ 單引号 039
\ " 雙引号 034
\\ 反斜杠 092
\0 空字元(NULL)

具體内容

轉義字元的初衷是用于 ASCII 編碼,是以它的取值範圍有限:

八進制形式的轉義字元最多後跟三個數字,也即\ddd,最大取值是\177;

十六進制形式的轉義字元最多後跟兩個數字,也即\xdd,最大取值是\7f。

控制符 說明
%d 按十進制整型資料的實際長度輸出。
%ld 輸出長整型資料。
%md m 為指定的輸出字段的寬度。如果資料的位數小于 m,則左端補以空格,若大于 m,則按實際位數輸出。
%u 輸出無符号整型(unsigned)。輸出無符号整型時也可以用 %d,這時是将無符号轉換成有符号數,然後輸出。但程式設計的時候最好不要這麼寫,因為這樣要進行一次轉換,使 CPU 多做一次無用功。
%c 用來輸出一個字元。
%f 用來輸出實數,包括單精度和雙精度,以小數形式輸出。不指定字段寬度,由系統自動指定,整數部分全部輸出,小數部分輸出 6 位,超過 6 位的四舍五入。
%lf 這個是double的輸出控制符(double隻能用這個,否則會出錯!)
%.mf 輸出實數時小數點後保留 m 位,注意 m 前面有個點。
%o 以八進制整數形式輸出(這個就用得很少了,了解一下就行了。)
%s 用來輸出字元串。用 %s 輸出字元串同前面直接輸出字元串是一樣的。但是此時要先定義字元數組或字元指針存儲或指向字元串,這個稍後再講。
%x (或 %X 或 %#x 或 %#X) 以十六進制形式輸出整數,這個很重要。

具體内容

十六進制輸出:如果是小寫的x,輸出的字母就是小寫的;如果是大寫的X,輸出的字母就是大寫的;如果加一個#,就以标準的十六進制形式輸出。

最好是加一個#,否則如果輸出的十六進制數正好沒有字母的話會誤認為是一個十進制數呢!總之,不加#容易造成誤解。但是如果輸出 0x2f 或 0x2F,那麼人家一看就知道是十六進制。而且%#x和%#X中,筆者覺得大寫的比較好,因為大寫是絕對标準的十六進制寫法。

小結:在C語言中,‘\’、’%‘和’='都是有特殊意義的,是以,要表示“\”,就要輸入"\\",同理,“%”要輸入"%%",“=”要輸入"=="。

(有趣的是,在編寫這篇文章時,在轉義符哪,我最下面四個輸了兩次\,小結我輸了四次。)

繼續閱讀