1、如何改变控制台中文本的颜色。比如我的程序可能需要在必要的时候用红色字体来强调某些警告信息,请问应该如何实现?
2、如何在控制台里显示动态文本。比如程序在执行一些长时间的工作的时候需要显示进度百分比,一个数字从1%变到100%,请问这应该如何实现?
谢谢!

解决方案 »

  1.   


    /*
    BOOL SetConsoleTextAttribute(
         HANDLE hConsoleOutput,//控制台输出句柄,不多废话
         WORD wAttributes //颜色属性
    )
    */HANDLE hOut;
    WORD color;
    hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    color=FOREGROUND_RED|BACKGROUND_GREEN; //绿底红字
    SetConsoleTextAttribute(hOut,color);
    printf("Hello!");
      

  2.   

    设置控制台颜色用楼上所说的SetConsoleTextAttribute函数就行。如果你想滚动数字,可以考虑用\b控制符退格,然后重新打印。例如,
    for(int i=0;i<100000;i++)
    printf("%10d"
    "%%"
    "\b\b\b\b\b\b\b\b\b\b\b",i);
      

  3.   

    学习#include<stdio.h>
    #include<windows.h>int main()
    {
    HANDLE hOut;
    WORD color;
    hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    color=FOREGROUND_RED|BACKGROUND_GREEN; //绿底红字
    SetConsoleTextAttribute(hOut,color);
    printf("Helloaaaaaaaaaaaaaaaaaaaaaaaaa!");
    for(int i=0;i <100000;i++) 
    printf("%10d" 
    "%%" 
    "\b\b\b\b\b\b\b\b\b\b\b",i);
    return 0;
    }
      

  4.   

    http://blog.csdn.net/yxnk/archive/2008/05/11/2434685.aspx