toupper devuelve entero en lugar de char
para la siguiente función
void display()
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (board[i][j] < 84 && (i+j)%2 == 0)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0x70);
else if (board[i][j] < 84 && (i+j)%2 == 1)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0xc0);
else if (board[i][j] > 97 && (i+j)%2 == 0)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0x7c);
else if (board[i][j] > 97 && (i+j)%2 == 1)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0xc7);
cout << " " << toupper(board[i][j]) << " ";
}
cout << endl;
}
}
en lugar de devolver caracteres para el tablero de caracteres [8] [8], devuelve enteros para que mi salida se vea como
82 78 66 81 75 66 78 82
80 80 80 80 80 80 80 80
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
80 80 80 80 80 80 80 80
82 78 66 81 75 66 78 82
en lugar de la salida esperada de
R N B Q K B N R
P P P P P P P P
P P P P P P P P
R N B Q K B N R
También he intentado declarar un char a = board [i] [j]; cout << toupper (a); en un intento de confirmar el tipo de variable como un carácter y recibió la misma salida.
esta es una tarea para una clase, por lo que no espero mucha ayuda, solo quiero saber por qué mi función está devolviendo enteros en lugar de caracteres para saber cuál es mi error para referencia futura, Google no ayudó mucho. ¿Es algún tipo de problema de alcance con toupper?