在程式設計的時候有時候需要強調顯示一些資訊,加粗字型或者改變輸出字元顏色,來達到目的。
ascii碼本身就包含部分控制字元(33個,[0-31,127] (十進位制))1
2二進位制
十進位制十六進製制
縮寫unicode表示法
脫出字元表示法
名稱/意義
0000 000000
nul␀
^@空字元(null)
0000 000111
soh␁
^a標題開始 (start of heading)
0000 001022
stx␂
^b本文開始 (start of text)
0000 001133
etx␃
^c本文結束 (end of text )
0000 010044
eot␄
^d傳輸結束 (end of transmission)
0000 010155
enq␅
^e請求 (enquiry )
0000 011066
ack␆
^f確認回應 (acknowledge)
0000 011177
bel␇
^g響鈴 (bell)
0000 100088
bs␈^h退格 (backspace)
0000 100199
ht␉^i水平定位符號 (horizontal tab)
0000 1010
100alf␊
^j換行鍵 (nl line feed, new line )
0000 1011
110bvt␋
^k垂直定位符號 (vertical tab)
0000 1100
120cff␌
^l換頁鍵 (np form feed, new page )
0000 1101
130dcr␍
^mcr (字元) (carriage return )
0000 1110
140eso␎
^n取消變換(shift out)
0000 1111
150fsi␏
^o啟用變換(shift in)
0001 0000
1610
dle␐
^p跳出資料通訊 (data link escape)
0001 0001
1711
dc1␑
^q裝置控制一(xon 啟用軟體速度控制)
0001 0010
1812
dc2␒
^r裝置控制二 (device control 2 )
0001 0011
1913
dc3␓
^s裝置控制三(xoff 停用軟體速度控制)
0001 0100
2014
dc4␔
^t裝置控制四 (device control 4)
0001 0101
2115
nak␕
^u確認失敗回應 (negative acknowledge)
0001 0110
2216
syn␖
^v同步用暫停 (synchronous idle)
0001 0111
2317
etb␗
^w區塊傳輸結束 (end of trans. block)
0001 1000
2418
can␘
^x取消 (cancel)
0001 1001
2519em␙
^y連線介質中斷 (end of medium)
0001 1010
261a
sub␚
^z替換 (substitute)
0001 1011
271b
esc␛
^[退出鍵 (escape)
0001 1100
281cfs␜
^\檔案分割符 (file separator)
0001 1101
291dgs␝
^]組群分隔符 (group separator)
0001 1110
301ers␞
^^記錄分隔符 (record separator)
0001 1111
311fus␟
^_單元分隔符 (unit separator)
0111 1111
1277f
del␡
^?delete字元
而我們用到的方法就是使用終端轉義序列esc[*m
3
, esc的八進位制為\033
,十六進製制是\x1b
,轉義字元是\e
4
, 其中*
可以是多個屬性的組合,用分號隔開。
常用的ansi控制碼如下(有些不支援,與terminal有關):
例如:\033[0m 關閉所有屬性
\033[1m 高亮
\033[2m 亮度減半
\033[3m 斜體
\033[4m 下劃線
\033[5m 閃爍
\033[6m 快閃
\033[7m 反顯
\033[8m 消隱
\033[9m 中間一道橫線
10-19 關於字型的
21-29 基本與1-9正好相反
30-37 設定前景色
30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色
38 開啟下劃線,設定預設前景色
39 關閉下劃線,設定預設前景色
40-47 設定背景色
40 黑色背景
41 紅色背景
42 綠色背景
43 棕色背景
44 藍色背景
45 品紅背景
46 孔雀藍背景
47 白色背景
48 未知
49 設定預設背景色
50-89 沒用
90-109 設定前景背景的,比之前的顏色淺
ansi控制碼
\033[na 游標上移n行
\033[nb 游標下移n行
\033[nc 游標右移n行
\033[nd 游標左移n行
\033[y;xh設定游標位置
\033[2j 清屏
\033[k 清除從游標到行尾的內容
\033[s 儲存游標位置
\033[u 恢復游標位置
\033[?25l 隱藏游標
\033[?25h 顯示游標
效果如下,根據終端不同顯示可能有部分差異:#include
#define font_color_red "\e[31m"
#define font_color_green "\e[32m"
#define font_color_blue "\e[34m"
#define font_color_def "\e[39m"
intmain
(int argc,
char
*ar**)
c語言怎麼改變視窗的字型顏色和背景顏色
ascii↩︎
↩︎ terminalescapesequences↩︎
escape_sequences_in_c↩︎
c 中輸出字元的位址
struct test int main 輸出結果 為什麼用cout輸出字元的位址出來是亂碼呢?看下面這段 int main 這裡s是這個字串的首位址,看到這裡應該明白為什麼上面要求輸出位址卻輸出亂碼。c 裡用cout輸出乙個字元的位址,輸出的結果是從該字元開始的乙個字串的內容 struct tes...
c 輸出字元的處理知識
cout printf a 浮點數 十六進製制數字和p 記數法 c99 a 浮點數 十六進製制數字和p 記法 c99 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 e 記數法 f ...
控制頁面中輸出字串的長度
一 1 index.php include once conn conn.php 呼叫連線資料庫的檔案 include once function.php sql mysql query select from tb new dynamic order by id desc limit 0,6 id...