Я пытаюсь выровнять свой вывод с помощью setw и left в c ++ следующим образом:
string s[] = {"S1", "S2", "S10", "S4", "S5", "S11", "S3", "S7"};
for (int i=4; i<=11; i++) {
for (int j=0; j<8; j++) {
if (j%2==0) {
cout << setw(8) << left << s[i-4];
} else {
cout << setw(8) << left << "* ";
}
}
cout << endl;
}
Этот код работает довольно хорошо. Но если я добавлю цвет к тексту, как показано ниже, это нарушит выравнивание.
string s[] = {"\033[1;31mS1\033[0m", "\033[1;31mS2\033[0m", "\033[1;31mS10\033[0m", "\033[1;31mS4\033[0m", "\033[1;31mS5\033[0m", "\033[1;31mS11\033[0m", "\033[1;31mS3\033[0m", "\033[1;31mS7\033[0m"};
У кого-нибудь есть идеи, как исправить этот код, чтобы цвета и выравнивание работали одновременно? Спасибо