改變 C/C++ 控制台程序的輸出顏色和樣式


我們經常可以看見Linux自帶終端下的許多程序都輸出了不同顏色和底紋的字體。最近也想要自己實現一下這種效果,方法是在輸出流中插入占位符\033[***

我從網上收集了一些常用的控制語句,並用以下代碼依次測試了一下效果:

#include <iostream>	 	 
using namespace std;	 	 
int main(){	 	 
 cout << "\033[2J\033[0;0H";	 	 
 for (int i = 0; i < 129;i++){	 	 
 printf("\033[%dm\\033[%dm)\033[0m\n", i, i);	 	 
 }	 	 
}

\033[0m 關閉所有屬性 
\033[1m 高亮
\033[2m 亮度減半
\033[3m 斜體
\033[4m 下划線
\033[5m 閃爍 (效果圖中未顯示)
\033[6m 快閃
\033[7m 反顯
\033[8m 消隱
\033[9m 中間一道橫線

https://billc.io/wp-content/uploads/2019/03/image.jpeg

31-37:設置前景色

41-47:設置背景色

(顏色在不同的終端中設置的ANSI顏色可能會有所不同)

https://billc.io/wp-content/uploads/2019/03/image-3.jpeg
https://billc.io/wp-content/uploads/2019/03/image-1.jpeg
https://billc.io/wp-content/uploads/2019/03/image-2.jpeg

90-106和31-37一樣,也是用來設置顏色的,不過會更加明亮一些。

https://billc.io/wp-content/uploads/2019/03/image-4.jpeg

除此之外,還有以下常用命令:

\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 顯示光標

在實際的使用的過程中,可以同時組合多種配置,並用分號分隔。比如\033[4;42m可以輸出綠色背景並帶有下划線的文字。通常也會連續使用命令,用\033[2J;0;0H可以清屏並將光標移到控制台左上角開始輸出。


在實際的使用的過程中,可以同時組合多種配置,並用分號分隔。比如\033[4;42m可以輸出綠色背景並帶有下划線的文字。通常也會連續使用命令,用\033[2J;0;0H可以清屏並將光標移到控制台左上角開始輸出。

 

來源:https://billc.io/2019/03/stylish-output/


免責聲明!

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



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