C/C++的逸出字元

來源:互聯網
上載者:User
所有的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 字元(NULL) 000   /ddd 任一字元 三位八進位   /xhh 任一字元 二位十六進位 

/a:蜂鳴,響鈴
/b:回退:向後退一格
/f:換頁
/n:換行,游標到下行行首
/r:斷行符號,游標到本行行首
/t:水平製表
/v:垂直製表
//:反斜線
/':單引號
/":雙引號
/?:問號
/ddd:三位八進位
/xhh:二位十六進位
/0:Null 字元(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()的提示:
                分解字串,很多功能都需要Regex的知識,所以就介紹一下最簡單的幾種用sscanf來分解字串 的用法。
                1.
                char str[100],str1[100],str2[100];
                gets(str);
                sscanf(str,”%s%s”,str1,str2);
                將讀入的一整行字串按空格,定位字元或斷行符號符分割成兩個字串。
                2
                取指定長度的字串。如在下例中,取最大長度為4位元組的字串。
         sscanf("123456 ", "%4s", str);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.