Огромное вам спасибо, вы оба были правы. Следовало увеличить буфер до 6 символов, а также экземпляры структуры создать в объявлении класса, а в конструкторе их заполнить.
Работающий код теперь выглядит так:
#include #include <string.h>
using namespace std;
class ConsoleFitches
{
public:
void SetAttDefault() const {char att[]="\033[0m";cout << att;};
void SetAttBold() const {char att[]="\033[1m";cout << att;};
void SetAttBlink() const {char att[]="\033[5m";cout << att;};
void SetTextColor(char color[5]) const{cout<<color;};
void SetBgColor(char* color[5]) const{cout<<color;};
ConsoleFitches();
struct Color
{
char Black[6];
char Red[6];
char Green[6];
char Brown[6];
char Blue[6];
char Violet[6];
char Cyan[6];
char Gray[6];
};
Color TextColor,BgColor;
};
ConsoleFitches::ConsoleFitches()
{
strcpy(TextColor.Black,"\033[30");
strcpy(TextColor.Red,"\033[31m");
strcpy(TextColor.Green,"\033[32");
strcpy(TextColor.Brown,"\033[33");
strcpy(TextColor.Blue,"\033[34");
strcpy(TextColor.Violet,"\033[35");
strcpy(TextColor.Cyan,"\033[36");
strcpy(TextColor.Gray,"\033[37");
strcpy(BgColor.Black,"\033[40");
strcpy(BgColor.Red,"\033[41");
strcpy(BgColor.Green,"\033[42");
strcpy(BgColor.Brown,"\033[43");
strcpy(BgColor.Blue,"\033[44");
strcpy(BgColor.Violet,"\033[45");
strcpy(BgColor.Cyan,"\033[46");
strcpy(BgColor.Gray,"\033[47");
};
Также хотелось бы получить уточнение, чем этот код ужасен, и как написать правильно?