Linux下利用printf函式列印帶顏色的字串

2021-08-10 09:49:54 字數 1412 閱讀 1429

v

相信大家在除錯**或者是在做某個專案的介面時候,會覺得顯示在終端上的字型顏色太單調了。

其實,在linux環境下利用

printf

函式就可以實現字型顏色的改變。不只是字型顏色的改變,利用

printf

函式你還可以實現設定高亮度、設定下劃線 、

閃爍 等等效果。利用好

printf

函式可以使你編寫的專案逼格更高,也會使你除錯過程更有樂趣。

v一種控制:printf("\033[xm");

多種控制:printf("\033[x;y;zm");等價於

printf("\033[xm\033[ym\033[zm "); 

舉個例子:

這是我做的專案中提示錯誤的乙個片段,效果是背景色

深紅色閃爍。

**實現:

printf("\033[41m\033[5m"); // 開始以

深紅色閃爍列印

printf(

「圖例中的話\n」);

printf("\033[0m");關閉所有屬性,恢復預設顏色列印

注意:如果不加上printf("\033[0m");,接下來終端上的顯示都是背景深紅色閃爍列印,這就會亮瞎了眼。從這裡我們可以看出

printf("\033[xm");

和printf("\033[0m");

都是配對使用的。

附:參考顏色**

v顏色**:

quote:

字背景顏色

範圍:40----49 40:黑 41:深紅 42:綠 43:黃色 44:藍色 45:紫色 46:深綠 47:白色 

字顏色:30-----------39 30:黑 31:紅 32:綠 33:黃 34:藍色 35:紫色 36:深綠 37:白色 

vansi控制碼

:quote:

\033[0m   關閉所有屬性

\033[1m   設定高亮度

\03[4m   下劃線

\033[5m   閃爍

\033[7m   反顯

\033[8m   消隱

\033[30m   --   \033[37m  設定前景色

\033[40m   --   \033[47m  設定背景色

\033[na   游標上移n行

\03[nb   游標下移n行

\033[nc   游標右移n行

\033[nd   游標左移n行

\033[y;xh設定游標位置

\033[2j   清屏

\033[k   清除從游標到行尾的內容

\033[s   儲存游標位置

\033[u   恢復游標位置

\033[?25l   隱藏游標

\33[?25h   顯示游標

MDK環境下stm32實現printf函式

printf雖然是c語言的標準函式,但是是針對有stdin,stdout裝置的系統的,在嵌入式平台上是沒有標準的stdin,stdout的,需要對映到串列埠後某個輸出物件的,而嵌入式平台各不相同,如果又沒有作業系統的支援,就只能靠自己實現了,因此stm32下的printf不在標準庫里,而在定製的庫里...

關於linux下printf函式輸出不及時的解決

在linux系統下,printf函式是行緩衝式的輸出,當printf遇到 n時,或者緩衝區滿時,才會將緩衝區裡的內容重新整理到標準輸出 stdout 因此,printf p 等語句的顯示不能立刻顯示在螢幕上,但是printf p n 可以.為了解決這個問題可以通過 fflush stdout 解決,...

總結linux下printf命令的用法

printf format and print date 通過printf的選項格式化輸出資料 參考 基本英文學習 二進位制 binanry number 八進位制 otcal number 十進位制 decimal number 十六進製制 hexadecimal number 1 基本的列印輸出...