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