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