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

  • 相关阅读:
    Scala并发编程react、loop代码实战具体解释
    Linux内核通知链模块
    STL栈的应用之表达式求值
    ansi 控制码表及颜色代码
    关于substring的char[]共享
    jQuery几个经典表单应用整理回想
    ShareSDK for Android 2.3.10已经公布
    cocos2dx坐标系
    一种Android数据请求框架
    css 小问题解决方法整理
  • 原文地址:https://www.cnblogs.com/fps2tao/p/15078195.html
Copyright © 2011-2022 走看看