zoukankan      html  css  js  c++  java
  • C++ 输出彩色的控制台

    输出彩色的控制台文字

    #include <iostream>
    #include <Windows.h>
    #include <stdio.h>
    #include <stdarg.h>
    
    using namespace std;
    
    void cprintf(const char* str, WORD color, ...);
    void testPrintf();
    
    int main() {
        cprintf("H", 10);
        cprintf("e", 9);
        cprintf("l", 12);
        cprintf("l", 11);
        cprintf("o", 13);
        cprintf(" ", 10);
        cprintf("W", 15);
        cprintf("o", 2);
        cprintf("r", 5);
        cprintf("l", 8);
        cprintf("d", 14);
        cprintf("!", 4);
    
        testPrintf();
    
        return 0;
    }
    
    void cprintf(const char* str, WORD color, ...) {
        WORD colorOld;
        HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO csbi;
        GetConsoleScreenBufferInfo(handle, &csbi);
        colorOld = csbi.wAttributes;
        SetConsoleTextAttribute(handle, color);
        cout << str;
        SetConsoleTextAttribute(handle, colorOld);
    }
    
    void testPrintf() {
    
        WORD colorOld;
        HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO csbi;
        GetConsoleScreenBufferInfo(handle, &csbi);
        colorOld = csbi.wAttributes;
    
        cout << endl;
        //https://docs.microsoft.com/zh-cn/windows/console/console-screen-buffers#character-attributes
        SetConsoleTextAttribute(handle, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE);//以下组合实现:蓝色背景上的亮青色文本。
        cout << "123" << endl;
        SetConsoleTextAttribute(handle, BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);//以下组合实现:白色背景上的黑色文本。
        cout << "456" << endl;
        SetConsoleTextAttribute(handle, colorOld);//恢复原来样式
    }

    转: https://www.cnblogs.com/finlay/archive/2013/06/09/3234729.html

  • 相关阅读:
    ASP.NET Web应用程序与ASP.NET Web服务应用程序的区别
    【你必须知道的.NET】:【大话String】
    获取SQLServer数据库中所有表
    Window_Open详解收藏
    关于数据实现批量删除
    asp.net mvc 图形解析说明原理
    【转载】:C#语言
    泛型参数的约束
    SQL 常用函数小结
    [转载]:C#两种不同的存储过程调用方法
  • 原文地址:https://www.cnblogs.com/fps2tao/p/15078195.html
Copyright © 2011-2022 走看看