轉義字元
含義
ASCII碼(16/10進制)
\o
空字元(NULL)
00H/0
\n
換行符(LF)
0AH/10
\r
回車符(CR)
0DH/13
\t
水準制表符(HT)
09H/9
\v
垂直制表(VT)
0B/11
\a
響鈴(BEL)
07/7
\b
倒退符(BS)
08H/8
\f
換頁符(FF)
0CH/12
\’
單引号
27H/39
\”
雙引号
22H/34
\\
反斜杠
5CH/92
\?
問号字元
3F/63
\ddd
任意字元
三位八進制
\xhh
任意字元
二位十六進制
字元常量中使用單引号和反斜杠以及字元常量中使用雙引号和反斜杠時,都必須使用轉義字元表示,即在這些字元前加上反斜杠。
在C程式中使用轉義字元\ d d d或者\ x h h可以友善靈活地表示任意字元。\ d d d為斜杠後面跟三位八進制數,該三位八進制數的值即為對應的八進制A S C I I碼值。\ x後面跟兩位十六進制數,該兩位十六進制數為對應字元的十六進制A S C I I碼值。
使用轉義字元時需要注意以下問題:
1) 轉義字元中隻能使用小寫字母,每個轉義字元隻能看作一個字元。
2) \v 垂直制表和\f 換頁符對螢幕沒有任何影響,但會影響列印機執行響應操作。
3) 在C程式中,使用不可列印字元時,通常用轉義字元表示
注:
1,\v垂直制表和\f換頁符對螢幕沒有任何影響,但會影響列印機執行響應操作。
2,\n其實應該叫回車換行。換行隻是換一行,不改變光标的橫坐标;回車隻是回到行首,不改變光标的縱坐标。
3,\t 光标向前移動四格或八格,可以在編譯器裡設定
4,\‘ 在字元裡(即單引号裡)使用。在字元串裡(即雙引号裡)不需要,隻要用 ‘ 即可。
5,\? 其實不必要。隻要用 ? 就可以了(在windows VC6 和tc2 中驗證)。
格式控制符參考:
對64位整數的輸入輸出,在POJ上的C++環境下(即VC++),64位整數是:
__int64
輸入輸出格式為”%I64d”.
在G++環境下, 64位整數是
long long
輸入輸出格式為”%lld”.
域寬及精度的描述
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);
基本整型:兩個位元組,十六個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 1111 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
格式輸出字元:printf
使用:向終端輸出若幹個類型任意的資料。
形式:printf (格式控制符,輸出清單)
說明:
格式控制符:% 格式說明引導符。
- 指定左對齊輸出。
0 指定空位填零。
m.n 指定輸出域寬度及精度。
l.h 輸出長度的修正。
格式字元 指定輸出的資料類型。
說明:
格式字元:指定輸出項的資料類型和輸出格式。
d 有符号十進制整數。
o 無符号八進制數。
x 無符号十六進制數。(小寫的x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數,大寫的X則用大寫的ABCDEF來表示10到15之間的數)
u 不帶符号的十進制整數。