c++之終端輸出帶顏色
阿新 • • 發佈:2021-06-28
目錄
基礎用法
#include <iostream> int main(int argc, char** argv) { std::cout << "\033[0;30m This is black color text ! \033[0m" << std::endl; std::cout << "\033[0;31m This is red color text ! \033[0m" << std::endl; std::cout << "\033[0;32m This is green color text ! \033[0m" << std::endl; std::cout << "\033[0;33m This is orang color text ! \033[0m" << std::endl; std::cout << "\033[0;34m This is blue color text ! \033[0m" << std::endl; std::cout << "\033[0;35m This is purple color text ! \033[0m" << std::endl; std::cout << "\033[0;36m This is cyan color text ! \033[0m" << std::endl; std::cout << "\033[0;37m This is light gray color text ! \033[0m" << std::endl; return 0; }
ANSI escape codes
顏色 | code | 顏色 | code |
---|---|---|---|
black | 0;30 | dark gray | 1;30 |
red | 0;31 | light red | 1;31 |
green | 0;32 | light green | 1;32 |
brown/orange | 0;33 | yellow | 1;33 |
blue | 0;34 | light blue | 1;34 |
purple | 0;35 | light purple | 1;35 |
cyan | 0;36 | light cyan | 1;36 |
light vray | 0;37 | whilte | 1;37 |
注:
- 錯誤 -- 紅色
- 警告 -- 黃色
- 資訊 -- 綠色
#define
- 方法一:
#define COUT(X) std::cout <<std::setiosflags(std::ios::fixed)<< X << "\033[3m" << "\r" << std::flush << std::endl #define COUTR(X) std::cout <<std::setiosflags(std::ios::fixed)<< "\033[1;31m " << X << "\033[0m" << "\r" << std::flush << std::endl // red #define COUTG(X) std::cout <<std::setiosflags(std::ios::fixed)<< "\033[1;32m " << X << "\033[0m" << "\r" << std::flush << std::endl // green #define COUTY(X) std::cout <<std::setiosflags(std::ios::fixed)<< "\033[1;33m " << X << "\033[0m" << "\r" << std::flush << std::endl // yellow #define COUTB(X) std::cout <<std::setiosflags(std::ios::fixed)<< "\033[1;34m " << X << "\033[0m" << "\r" << std::flush << std::endl // blue #define COUTP(X) std::cout <<std::setiosflags(std::ios::fixed)<< "\033[1;35m " << X << "\033[0m" << "\r" << std::flush << std::endl // purple
用法:
COUTG("~~ ================================================ ~~");
COUTG("~~ ===== Robosense Perception ===== ~~");
COUTG("~~ ================================================ ~~");
COUTG("OpenCV version: " << CV_VERSION);
COUTG("ROS version: " << ROS_VERSION_MAJOR << "." << ROS_VERSION_MINOR << "." << ROS_VERSION_PATCH);
COUTG("PCL version: " << PCL_VERSION_PRETTY);
COUTG("Boost version: " << BOOST_LIB_VERSION);
COUTG("Eigen version: " << EIGEN_WORLD_VERSION << "." << EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION);
- 方法二:
#define RESET "\033[0m"
#define BLACK "\033[30m" /* Black */
#define RED "\033[31m" /* Red */
#define GREEN "\033[32m" /* Green */
#define YELLOW "\033[33m" /* Yellow */
#define BLUE "\033[34m" /* Blue */
#define PURPLE "\033[35m" /* Purple */
#define CYAN "\033[36m" /* Cyan */
#define WHITE "\033[37m" /* White */
#define NORMAL (std::cout << RESET)
#define INFO (std::cout << GREEN)
#define WARN (std::cout << YELLOW)
#define ERROR (std::cout << RED)
#define DEBUG (std::cout << CYAN)
#define END (std::endl)
#define REND "\033[0m" << std::endl
個人感覺第二種方法用起來更方便些.