2d-массив символов, печатающий квадраты. Как мне это исправить?

#c #struct

#c #структура

Вопрос:

Я пытаюсь закодировать игру в крестики-нолики. Это моя структурная игра:

 typedef struct {
    char tabuleiro[3][3];
    int casas[9];
    jogador* p;
} jogo;
  

У меня есть новая игровая функция, которая выглядит следующим образом:

 void novoJogo(jogo* j, jogador* p) {
    int aux = 1;
    j->p = p;

    for (int i = 0; i < 9;   i)
        j->casas[i] = i 1;

    for (int k = 0; k < 3;   k) {
        for (int i = 0; i < 3;   i) {
            j->tabuleiro[k][i] = (char) aux;
            aux  ;
        }
    }
    jogar(j);
}
  

Для меня все выглядит нормально, но каждый раз, когда я пытаюсь напечатать tabuleiro, я получаю это:

введите описание изображения здесь

Я ожидал получить что-то вроде:

 1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
  

Это моя функция печати. Я протестировал несколько вещей, и я не думаю, что ошибка здесь, но здесь вы идете:

 void print(jogo* j) {
    for (int k = 0; k < 3;   k) {
        for (int i = 0; i < 3;   i) {
            if (i == 0)
                cout << j->tabuleiro[k][i] << " | ";
            else if (i == 2)
                cout << " | " << j->tabuleiro[k][i] << endl;
            else
                cout << j->tabuleiro[k][i];
        }
    }
}
  

Я также думаю, что стоит отметить, что я использую Clion от Jetbrains в качестве своей Ide.
Кто-нибудь знает, что здесь происходит?

Заранее спасибо!

Комментарии:

1. Сделайте это cout << int(j->tabuleiro[k][i]) . Вы печатаете символ с ASCII-кодом 1, а не символ '1'

2. @IgorTandetnik это сработало! Дело в том, что в tabuleiro не всегда будут целые числа. На самом деле, как только игра запустится, она быстро заполнится буквами «X» и «O».

3. Затем измените j->tabuleiro[k][i] = (char) aux на j->tabuleiro[k][i] = '0' aux , и вы сможете распечатать его нормально. Решите, будет ли массив содержать символы или целые числа, и придерживайтесь его.

4. Ключ — это таблица ASCII и описание

5. Спасибо всем! Решение @IgorTandetnik сработало просто отлично.