c/c++中的轉義字符


所有的ASCII碼都可以用“\”加數字(一般是8進制數字)來表示。而C中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉義字符,因為后面的字符,都不是它本來的ASCII字符意思了。
轉義字符 意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 退格(BS) 008
\f 換頁(FF) 012
\n 換行(LF) 010
\r 回車(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 問號字符 063
\' 單引號字符 039
\" 雙引號字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八進制
\xhh 任意字符 二位十六進制

\a:蜂鳴,響鈴 
\b:回退:向后退一格 
\f:換頁 
\n:換行,光標到下行行首 
\r:回車,光標到本行行首 
\t:水平制表 
\v:垂直制表 
\\:反斜杠 
\':單引號 
\":雙引號 
\?:問號 
\ddd:三位八進制 
\xhh:二位十六進制 
\0:空字符(NULL),什么都不做 
注: 
1,\v垂直制表和\f換頁符對屏幕沒有任何影響,但會影響打印機執行響應操作。 
2,\n其實應該叫回車換行。換行只是換一行,不改變光標的橫坐標;回車只是回到行首,不改變光標的縱坐標。 
3,\t 光標向前移動四格或八格,可以在編譯器里設置 
4,\' 在字符里(即單引號里)使用。在字符串里(即雙引號里)不需要,只要用 ' 即可。 
5,\? 其實不必要。只要用 ? 就可以了(在windows VC6 和tc2 中驗證)。 

格式控制符參考: 

格式輸出字符:printf

使用:向終端輸出若干個類型任意的數據。

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

說明:

格式控制符:% 格式說明引導符。

- 指定左對齊輸出。

0 指定空位填零。

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

l.h 輸出長度的修正。

格式字符 指定輸出的數據類型。

說明:

格式字符:指定輸出項的數據類型和輸出格式。

d 有符號十進制整數。

o 無符號八進制數。

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

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

基本整型:兩個字節,十六個bit(位)

11 11 11 11 11 11 11 11 等於 65535.

11 11 11 11 11 11 11 10 等於 -2.

負數的第一位(符號位)為1。負數的補碼怎么得到:原碼取反加一。2的二進制數為:00 00 00 00 00 00 00 10,取反就等於11 11 11 11 11 11 11 01,然后加1,二進制數逢二進一,所以就得出-2 的二進制代碼。

有符號的整型數可以用 %d 輸出。

無符號的整型數可以用 %u 輸出。

電腦里存的數字都是二進制數,最高位是符號位還是數據位,可以由輸出格式符來控制。

二進制數轉換八進制數:三個 1 對應一個 7 。

二進制數鏨十六進制數:四位二進制對應一位十六進制,四個1 對應一個 f。

說明:

格式字符:c 輸出一個字符。

s 輸出一個字符串。

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

f 以小數形式輸出實型數。

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

% 輸出%。

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

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

長度修正符

l:對整型指定長整型long

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

對實型指定雙精度double

例:%lf

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

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

對64位整數的輸入輸出,在POJ上的C++環境下(即VC++),64位整數是: 
__int64 
輸入輸出格式為”%I64d”.

在G++環境下, 64位整數是 
long long 
輸入輸出格式為”%lld”.

域寬及精度的描述

M:域寬,即對應的輸出項在輸出設備上所占字符數

若:實際數據寬度>M,按實際數據寬度輸出。

實際數據寬度<M,左邊補空。

N:精度,說明輸出的實型數的小數位數。

幾點說明:

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

格式字符要用小寫字母。

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

格式控制字符串中的普通字符則原樣輸出。

輸出項的參數除了常數、變量外還可以是表達式、函數調用。

%g,%f和%e這三個格式用於打印浮點值。 
                  %g格式用於打印那些不需要按列對齊的浮點數特別有用。其作用有二: 
                  一,去掉該數尾多余的零(沒有達到六位的數) 
                  二,保留六位有效數字(多余六位的) 
                  %e格式用於打印浮點數時,一律顯示地使用指數形式:例如:輸出圓周率時是:3.141593e+00 
                 兩者的區別: 
                 %g格式打印出的數是總共6位有效數字 
                 %e格式打印出小數點后的6位有效數字 
                 %f禁止使用指數形式來表示浮點數。因此圓周率輸出為:3.141593 
                (但注意它的精度要求:也是小數點后6位有效數字) 
                (8)%%格式用於打印一個%字符。 
               (9)%E和%G只是在輸出時用大寫字母(E)代替了小寫字母(e)

                  輸出正負號的技巧,例如: 
                printf("%+d %+d %+d\n",-5,0,5); 
                只要在中間加個“+”號就行。作用是輸出符號位(即,數的正負號) 
                如果不希望正數的前面出現‘+’號,可用下面的方法 
                只要在中間加個“ ”號(即:空格)就行。例如: 
                作用:如果一個數是非負數,就在它的前面插入一個空格。 
                int i; 
                for(i=-3;i<=3;i++) 
                        printf("% d\n",i); //注意%和d之間有一個空格

                sscanf()的使用技巧: 
                分解字符串,很多功能都需要正則表達式的知識,所以就介紹一下最簡單的幾種用sscanf來分解字符串 的用法。 
                1. 
                char str[100],str1[100],str2[100]; 
                gets(str); 
                sscanf(str,”%s%s”,str1,str2); 
                將讀入的一整行字符串按空格,制表符或回車符分割成兩個字符串。 
                2 
                取指定長度的字符串。如在下例中,取最大長度為4字節的字符串。 
         sscanf("123456 ", "%4s", str);



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com