首頁>Club>
9
回覆列表
  • 1 # 使用者834195712159

    /*

    顏色函式SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加強 | 背景加強);

    前景色:數字0-15 或 FOREGROUND_XXX 表示 (其中XXX可用BLUE、RED、GREEN表示)

    前景加強:數字8 或 FOREGROUND_INTENSITY 表示

    背景色:數字16 32 64 或 BACKGROUND_XXX 三種顏色表示

    背景加強: 數字128 或 BACKGROUND_INTENSITY 表示

    主要應用:改變指定區域字型與背景的顏色

    前景顏色對應值:

      0=黑色 8=灰色  

     1=藍色 9=淡藍色 十六進位制   

      2=綠色 10=淡綠色 0xa   

      3=湖藍色 11=淡淺綠色 0xb 

      4=紅色 12=淡紅色 0xc  

      5=紫色 13=淡紫色 0xd   

      6=黃色 14=淡黃色 0xe   

      7=白色 15=亮白色 0xf

      也可以把這些值設定成常量。

    */

    #include <stdio.h>

    #include <windows.h>

    void color(short x) //自定義函根據引數改變顏色

    {

    if(x>=0 && x<=15)//引數在0-15的範圍顏色

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一個引數,改變字型顏色

    else//預設的顏色白色

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);

    }

    int main()

    {

    printf("此處為沒呼叫顏色函式之前預設的顏色\n");

    //呼叫自定義color(x)函式 改變的顏色

    color(0); printf("黑色\n");

    color(1); printf("藍色\n");

    color(2); printf("綠色\n");

    color(3); printf("湖藍色\n");

    color(4); printf("紅色\n");

    color(5); printf("紫色\n");

    color(6); printf("黃色\n");

    color(7); printf("白色\n");

    color(8); printf("灰色\n");

    color(9); printf("淡藍色\n");

    color(10); printf("淡綠色\n");

    color(11); printf("淡淺綠色\n");

    color(12); printf("淡紅色\n");

    color(13); printf("淡紫色\n");

    color(14); printf("淡黃色\n");

    color(15); printf("亮白色\n");

    color(16); //因為這裡大於15,恢復預設的顏色

    printf("回到原來顏色\n");

    //直接使用顏色函式

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY);

    printf("紅色字型 前景加強 綠色背景 背景加強\n");

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64);

    printf("亮白色字型 前景加強 紅色背景 背景加強\n");

    //宣告控制代碼再呼叫函式

    HANDLE JB = GetStdHandle(STD_OUTPUT_HANDLE);//建立並例項化控制代碼

    SetConsoleTextAttribute(JB, 2 | 8);

    printf("顏色及對應數字表:\n");

    for(int i = 0;i < 1000;i ++){

    //color(16);printf(" ");

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);

    printf("%-3d", i);

    color(16);printf(" ");

    if(i % 16 == 0) printf("\n");

    }

    color(16);

    return 0;

    //類似的函式還有system("color XX");(X是十六進位制0~F之間的數,不過這種函式改變的是整個畫面,而不能讓多處區域性變色;

    }/*

    顏色函式SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加強 | 背景加強);

    前景色:數字0-15 或 FOREGROUND_XXX 表示 (其中XXX可用BLUE、RED、GREEN表示)

    前景加強:數字8 或 FOREGROUND_INTENSITY 表示

    背景色:數字16 32 64 或 BACKGROUND_XXX 三種顏色表示

    背景加強: 數字128 或 BACKGROUND_INTENSITY 表示

    主要應用:改變指定區域字型與背景的顏色

    前景顏色對應值:

      0=黑色 8=灰色  

     1=藍色 9=淡藍色 十六進位制   

      2=綠色 10=淡綠色 0xa   

      3=湖藍色 11=淡淺綠色 0xb 

      4=紅色 12=淡紅色 0xc  

      5=紫色 13=淡紫色 0xd   

      6=黃色 14=淡黃色 0xe   

      7=白色 15=亮白色 0xf

      也可以把這些值設定成常量。

    */

    #include <stdio.h>

    #include <windows.h>

    void color(short x) //自定義函根據引數改變顏色

    {

    if(x>=0 && x<=15)//引數在0-15的範圍顏色

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一個引數,改變字型顏色

    else//預設的顏色白色

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);

    }

    int main()

    {

    printf("此處為沒呼叫顏色函式之前預設的顏色\n");

    //呼叫自定義color(x)函式 改變的顏色

    color(0); printf("黑色\n");

    color(1); printf("藍色\n");

    color(2); printf("綠色\n");

    color(3); printf("湖藍色\n");

    color(4); printf("紅色\n");

    color(5); printf("紫色\n");

    color(6); printf("黃色\n");

    color(7); printf("白色\n");

    color(8); printf("灰色\n");

    color(9); printf("淡藍色\n");

    color(10); printf("淡綠色\n");

    color(11); printf("淡淺綠色\n");

    color(12); printf("淡紅色\n");

    color(13); printf("淡紫色\n");

    color(14); printf("淡黃色\n");

    color(15); printf("亮白色\n");

    color(16); //因為這裡大於15,恢復預設的顏色

    printf("回到原來顏色\n");

    //直接使用顏色函式

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY);

    printf("紅色字型 前景加強 綠色背景 背景加強\n");

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64);

    printf("亮白色字型 前景加強 紅色背景 背景加強\n");

    //宣告控制代碼再呼叫函式

    HANDLE JB = GetStdHandle(STD_OUTPUT_HANDLE);//建立並例項化控制代碼

    SetConsoleTextAttribute(JB, 2 | 8);

    printf("顏色及對應數字表:\n");

    for(int i = 0;i < 1000;i ++){

    //color(16);printf(" ");

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);

    printf("%-3d", i);

    color(16);printf(" ");

    if(i % 16 == 0) printf("\n");

    }

    color(16);

    return 0;

    //類似的函式還有system("color XX");(X是十六進位制0~F之間的數,不過這種函式改變的是整個畫面,而不能讓多處區域性變色;

    }

  • 中秋節和大豐收的關聯?
  • 林黛玉是哪裡人?