即使满足条件,为什么我的程序也不会更改屏幕的颜色?

问题描述

代码

#define WINVER 0x0500

#include <stdio.h>

#include <stdlib.h>

#include <string.h>  

#include <conio.h>

#include <Windows.h>

#include <stdbool.h>

char arrayOfColors[][4] = {"Blue Background","Red Background","Green Background","Gray Background"};
FILE *preferences;
char preference[500];

int main()
{
    HWND wh = GetConsoleWindow();
    preferences = fopen("calendarpreferences.txt","r");
    fgets(preference,500,preferences);
    if(strcmp(arrayOfColors[0],preference) == 0)
    {
    SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
    fclose(preferences);
    }
    else if(strcmp(arrayOfColors[1],FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_RED);
    fclose(preferences);
    }
    else if(strcmp(arrayOfColors[2],FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_GREEN);
    fclose(preferences);
    }
    else if(strcmp(arrayOfColors[3],FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_INTENSITY);
    fclose(preferences);
    }
    else
    {
    SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
    fclose(preferences);
    }
} 

这段代码应该做的是:首先,从一个文本文件中读取。此文本文件具有Blue BackgroundRed BackgroundGreen BackgroundGray Background。数组也有那些元素。

这样做之后,它将比较从文件中获得的内容和数组的元素。如果其中之一相等,则控制台的背景将更改为上述颜色。否则,控制台的背景将变成蓝色。

但就我而言,它根本不这样做。我还尝试将颜色数组改为指针数组,但这甚至行不通。

那么,我该如何解决呢?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)