📜  c++ 彩色输出 - C++ (1)

📅  最后修改于: 2023-12-03 15:14:00.224000             🧑  作者: Mango

C++ 彩色输出

在C++中,我们可以使用库函数或者自定义函数来实现彩色输出。彩色输出可以用于在终端中打印出不同颜色的文本,从而使程序输出更加丰富和易于阅读。

使用库函数实现彩色输出
1. 使用 Windows API

在Windows系统上,我们可以使用Windows API中的函数来实现彩色输出。下面是一个使用Windows API函数实现彩色输出的示例代码:

#include <iostream>
#include <windows.h>

// 声明文本颜色常量
const int kRed = 12;
const int kYellow = 14;
const int kGreen = 10;

int main() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    // 设置文本颜色为红色
    SetConsoleTextAttribute(hConsole, kRed);
    std::cout << "Error: ";
    
    // 设置文本颜色为黄色
    SetConsoleTextAttribute(hConsole, kYellow);
    std::cout << "Warning: ";
    
    // 设置文本颜色为绿色
    SetConsoleTextAttribute(hConsole, kGreen);
    std::cout << "Success" << std::endl;

    // 恢复默认文本颜色
    SetConsoleTextAttribute(hConsole, 7);

    return 0;
}
2. 使用 ANSI 转义序列

在大多数终端上,我们可以使用ANSI转义序列来控制文本的颜色和样式。下面是一个使用ANSI转义序列实现彩色输出的示例代码:

#include <iostream>

// 声明颜色控制序列常量
const std::string kReset = "\033[0m";
const std::string kRed = "\033[31m";
const std::string kYellow = "\033[33m";
const std::string kGreen = "\033[32m";

int main() {
    std::cout << kRed << "Error: ";
    std::cout << kYellow << "Warning: ";
    std::cout << kGreen << "Success";
    std::cout << kReset << std::endl;

    return 0;
}
自定义函数实现彩色输出

除了使用库函数,我们还可以自定义函数来实现彩色输出。下面是一个使用自定义函数实现彩色输出的示例代码:

#include <iostream>

// 自定义彩色输出函数
void printColor(const std::string& color, const std::string& text) {
    std::cout << color << text;
    std::cout << "\033[0m";
}

int main() {
    printColor("\033[31m", "Error: ");
    printColor("\033[33m", "Warning: ");
    printColor("\033[32m", "Success");
    std::cout << std::endl;

    return 0;
}
总结

以上是在C++中实现彩色输出的几种方法,包括使用库函数和自定义函数。这些方法可以让程序输出更加醒目和易于读取,对于调试和错误处理非常有用。无论您选择哪种方法,都可以根据需要选择不同的颜色和样式来进行彩色输出。

请注意,在某些终端上,彩色输出可能不起作用或者显示不正确。因此,在编写代码时,请谨慎处理彩色输出,并确保在需要时提供备用的输出方式。