轉義字符\e


Windows 平台下,conio.h 中有許多操作控制台顏色、格式的函數。但是再 Linux 平台下卻沒有類似的函數。經過在網上的一番搜索,找到了解決此問題的方法——轉義字符\e。
注意,\e這種寫法可能並不被你的編譯器所支持(Linux下的GNU和Bash支持,親測無誤),因為他並不是ANSI C的。可以用\033代替。
此種方式在 Windows 下無效。
注意:格式更改之后,即使更改他的程序退出,格式也會保留,除非使用代碼0清除或退出這個終端。

1. 輸出格式

使用以下代碼更改輸出格式:

printf("\e[%dm", format);

其中format是格式代碼:
代碼十進制     作用
0     清除所有格式
1     加粗,與格式2沖突
2     字體變暗,與格式1沖突
3     斜體
4     下划線
5     背景加亮,但有的機器上沒效果
6     並沒有效果
7     反顯(背景色當前景色,前景色當背景色)
8     隱形(字符仍然存在,可以選中,只是看不到)
9     刪除線


2. 顏色

使用以下代碼字符色:

printf("\e[%dm", 30 + color); // 前景色
printf("\e[%dm", 40 + color); // 背景色


其中,color是顏色代碼:
代碼十進制     顏色
0     黑色,注意和控制台的背景色稍有區別
1     紅色
2     綠色
3     黃色
4     藍色
5     紫色
6     青色
7     白色,但實際上是亮灰色

注意:清除格式同樣會恢復默認顏色。
3. 其他指令

使用以下代碼執行控制台指令:

printf("\e%s", cmd);

其中cmd是指令字符串:
指令字符串     作用
c     清除屏幕,不可恢復
[y;xH]     將光標移至第x列第y行處
[nA     將光標上移n行
[nB     將光標下移n行
[nC     將光標右移n行
[nD     將光標左移n行
[K     清除從光標(包括)到行末的內容
[s     記錄光標的位置(只能記一次)
[u     恢復光標的位置
[?25l     顯示光標
[?25h     隱藏光標

本文不定期更新
---------------------
版權聲明:本文為CSDN博主「wxy_2015」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wxy_2015/article/details/50640101


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM