zoukankan      html  css  js  c++  java
  • C/C++ 控制台演示彩色输出进度

        

    #include <stdio.h>  
    #include <windows.h>  
    
    BOOL SetConsoleColor(WORD wAttributes); 
    
    int main()  
    {  
        SetConsoleColor(FOREGROUND_RED | FOREGROUND_INTENSITY);
    
        const int NUM  = 50;//任务完成总量  
    
        for (int i = 0; i < NUM; i++)  
        {  
            //用Sleep()来代替一些费时的操作,如读写文件,大量的运算。  
            Sleep(1000); //some work to do  
            //输出百分比  
            printf("%.2lf%%
    ", i * 100.0/ NUM);  
        }  
        return 0;  
    }  
    
    
    BOOL SetConsoleColor(WORD wAttributes)  
    {  
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);  
        if (hConsole == INVALID_HANDLE_VALUE)  
            return FALSE;  
    
        return SetConsoleTextAttribute(hConsole, wAttributes);  
    } 

      

      

      知识点:

      1)    它是转义字符中的回车符,准确的讲应该是回到本行开始处。

      2) HANDLE GetStdHandle(DWORD nStdHandle);

       参数有:STD_INPUT_HANDLE,STD_OUTPUT_HANDLE及STD_ERROR_HANDLE。传入STD_OUTPUT_HANDLE就可以得到控制台输出设备的句柄。

        BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput,WORD wAttributes);

       第一个参数为控制台standard input, standard output, or standard error的设备句柄,第二个参数用来设备设备的属性,这里详细介绍下表示颜色的参数。

        

       文字颜色使用如下组合:

       FOREGROUND_BLUE        0x0001 // text color contains blue.

       FOREGROUND_GREEN       0x0002 // text color contains green.

       FOREGROUND_RED         0x0004 // text color contains red.

       FOREGROUND_INTENSITY   0x0008 // text color is intensified.高亮颜色

       背景颜色使用如下组合:

       BACKGROUND_BLUE           0x0010 // background color contains blue.

       BACKGROUND_GREEN         0x0020 // background color contains green.

       BACKGROUND_RED             0x0040 // background color contains red.

           BACKGROUND_INTENSITY   0x0080 // background color is intensified.

          上面的颜色可以任意组合,如知道黄色可以由红色和绿色组成,所以可以用FOREGROUND_GREEN | FOREGROUND_RED来表示黄色的文字。

           默认情况下控制台的文字颜色是白色即用FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE也可以直接用7表示,背景颜色为黑色即用0表示。

     

  • 相关阅读:
    python 的 类属性 与 实例属性
    python 的 append 和 extend
    机器学习的最佳入门学习资源
    各种排序算法探讨与实现
    C++基础:C++中vector使用简介
    C++基础:C++中的explicit关键字
    差分约束(poj 1201
    codeforeces 547C
    2015 7月 做题记录
    set&map
  • 原文地址:https://www.cnblogs.com/MakeView660/p/6533944.html
Copyright © 2011-2022 走看看