Я хочу прочитать индекс в цветовой палитре консоли уже введенного (напечатанного в моем случае) символа в консоль. Что это значит? Вчера я написал простую программу, которая читает консоль wchar_t из позиции x, y.
Это было примерно так:
//Example of reading wchar_t from x, y
#include <windows.h>
#include <io.h>
#include <fcntl.h>
int main()
{
wchar_t readed;
DWORD numRead; //I don't know why but without it, program fails
_setmode(_fileno(stdout), _O_U16TEXT); //Setting mode to unicode
//Example text; It has got an arrow on beginning to check Unicode works
std::wcout << L"←The quick brown fox jumps over the lazy dog. 123456789";
ReadConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), &readed, sizeof(wchar_t), {0, 0}, &numRead);
std::wcout << readed;
_setmode(_fileno(stdout), _O_TEXT); //Go back to 8-bit text
return 0;
}
И вывод такой:
←The quick brown fox jumps over the lazy dog. 12345678
←
Так оно и работает! Но ... мне нужно получить индекс цвета в палитре консоли. Например, текст синий, поэтому вывод будет ← 1
. Есть ли способ сделать это?
Из важных вещей я использую Visual Studio и, как вы можете догадаться, я использую windows.