日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux C/C++ 如何输出彩色字体

發(fā)布時(shí)間:2024/9/30 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux C/C++ 如何输出彩色字体 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

先舉個(gè)例子:

#include <iostream>int main() {std::cout<<"\033[33mHello \033[34mworld!\033[0m"<<std::endl;return 0; }

執(zhí)行以上代碼,你將會(huì)看到紅色的Hello和藍(lán)色的world!
觀察上述代碼,你會(huì)發(fā)現(xiàn)我用了三個(gè)\033[*m
這就是Linux輸出彩色字體的關(guān)鍵
下表就是每個(gè)類似的字符串所代表的意思 (此表轉(zhuǎn)自此處)
\033[0m 關(guān)閉所有屬性
\033[1m 高亮
\033[2m 亮度減半
\033[3m 斜體
\033[4m 下劃線
\033[5m 閃爍
\033[6m 快閃
\033[7m 反顯
\033[8m 消隱
\033[9m 中間一道橫線
10-19 關(guān)于字體的
21-29 基本與1-9正好相反
30-37 設(shè)置前景色
40-47 設(shè)置背景色
30:黑
31:紅
32:綠
33:黃
34:藍(lán)
35:紫
36:深
37:白
38 打開下劃線,設(shè)置默認(rèn)前景色
39 關(guān)閉下劃線,設(shè)置默認(rèn)前景色
40 黑色背景
41 紅色背景
42 綠色背景
43 棕色背景
44 藍(lán)色背景
45 品紅背景
46 孔雀藍(lán)背景
47 白色背景
48 不知道什么東西
49 設(shè)置默認(rèn)背景色
50-89 沒用
90-109 又是設(shè)置前景背景的,比之前的顏色淺
\033[nA 光標(biāo)上移n行
\033[nB 光標(biāo)下移n行
\033[nC 光標(biāo)右移n行
\033[nD 光標(biāo)左移n行
\033[y;xH設(shè)置光標(biāo)位置
\033[2J 清屏
\033[K 清除從光標(biāo)到行尾的內(nèi)容
\033[s 保存光標(biāo)位置
\033[u 恢復(fù)光標(biāo)位置
\033[?25l 隱藏光標(biāo)
\033[?25h 顯示光標(biāo)

根據(jù)上表,就可以寫一個(gè)函數(shù),做到切換各種顏色
代碼如下 (只支持一些常用的顏色)

//color.h #ifndef SETCOLOR_H #define SETCOLOR_Hconst int F_BLACK = 0x01 // 000001 const int F_RED = 0x02 // 000010 const int F_GREEN = 0x03 // 000011 const int F_YELLOW = 0x04 // 000100 const int F_BLUE = 0x05 // 000101 const int F_DPURPLE = 0x06 // 000110 const int F_WHITE = 0x07 // 000111const int B_BLACK = 0x08 // 001000 const int B_RED = 0x10 // 010000 const int B_GREEN = 0x18 // 011000 const int B_BROWN = 0x80 // 100000 const int B_BLUE = 0x88 // 101000 const int B_WHITE = 0x90 // 110000 //缺一個(gè)111000,但就這些了bool setColor(int color); // color是一個(gè)前景色于一個(gè)后景色的位或結(jié)果 void resetFColor(); // 重置前景色 void resetBColor(); // 重置背景色#endif // SETCOLOR_H //color.cpp #include "color.h" #include <iostream>bool setColor(int color) {bool ret = true;int fore = color%8; //取color的后3位int back = (color/8)*8; //將color的后3位清空 (即取前3位)switch (fore){case F_BLACK:std::cout<<"\033[30m";break;case F_RED:std::cout<<"\033[31m";break;case F_GREEN:std::cout<<"\033[32m";break;case F_YELLOW:std::cout<<"\033[33m";break;case F_BLUE:std::cout<<"\033[34m";break;case F_PURPLE:std::cout<<"\033[35m";break;case F_WHITE:std::cout<<"\033[37m";break;default:ret = false;}switch (back){case B_BLACK:std::cout<<"\033[40m";break;case B_RED:std::cout<<"\033[41m";break;case B_GREEN:std::cout<<"\033[42m";break;case B_BROWN:std::cout<<"\033[43m";break;case B_BLUE:std::cout<<"\033[44m";break;case B_WHITE:std::cout<<"\033[47m";break;default:ret = false;}return ret; } void resetFColor() {std::cout<<"\033[39m";} void resetBColor() {std::cout<<"\033[49m";}

注:本段代碼未經(jīng)測(cè)試,可能會(huì)有錯(cuò)誤,請(qǐng)諒解!

最后,我們來編譯一下這個(gè)文件不會(huì)手動(dòng)編譯的朋友們注意了

  • 使用指令$ sudo apt-get install gcc g++來安裝C和C++ (沒有用Ubuntu的朋友們百度找找C和C++的編譯器吧)
  • 進(jìn)入那兩個(gè)文件存放的目錄
  • 使用指令$ g++ -c -o test.o test.cpp來生成目標(biāo)文件 (假設(shè)那兩個(gè)文件名為test.h和test.cpp)
  • 使用指令$ gcc -fPIC -shared test.o來生成動(dòng)態(tài)鏈接庫(kù)
  • 使用指令$ ar rcs -o libtest.a test.so來生成靜態(tài)庫(kù) (ar在安裝gcc和g++時(shí)已經(jīng)安裝好)
  • 如果你編輯好了main函數(shù)放在main.cpp里,則可以進(jìn)行后兩步
  • 使用指令g++ -c -o main.o main.cpp生成目標(biāo)文件
  • 如果你使用動(dòng)態(tài)鏈接庫(kù),使用指令gcc -o main -L. -ltest main.cpp生成main (libtest.so必須放在main的所在目錄下,否則main.exe失效)
  • 如果你使用靜態(tài)庫(kù),使用指令gcc -o main main.o libtest.a生成main (libtest.a不一定一直放在main的所在目錄下,因?yàn)閙ain不依賴)
  • 總結(jié)

    以上是生活随笔為你收集整理的Linux C/C++ 如何输出彩色字体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。