Функция getch() ничего не делает при вводе ключа

Функция getch() ничего не делает, и моя программа застревает в строке getch()!

Я хочу получить ввод char в С++ с помощью getch(), но ничего не происходит, когда я запускаю этот код, и он застревает в char c= getch(), даже когда я что-то ввожу.

#include <iostream>
#include <graphics.h>
#include <conio.h>

using namespace std;
int main()
{
    int n = 4;
    int table[10][10] = {{0}};
    srand(time(NULL));
    table[0][rand() % n] = 2;
    table[n - 1][rand() % n] = 2;
    cout << 1;
    char c = getch();
    cout << c;
}

person alilolo    schedule 26.03.2019    source источник
comment
getch устарела на некоторых платформах. Вместо этого вы можете использовать std::cin, особенно если вы используете std::cout в своем коде.   -  person vahancho    schedule 26.03.2019
comment
На самом деле я хочу использовать его в игре в качестве ключевого ввода.   -  person alilolo    schedule 26.03.2019
comment
Попробуйте std::cin.get()   -  person John    schedule 26.03.2019
comment
Это нужно ввести в консоль, но я этого не хочу.   -  person alilolo    schedule 26.03.2019
comment
Куда вы хотите ввести ключ? getch также требует ввода ключа в консоли.   -  person vll    schedule 26.03.2019
comment
Нет, я имею в виду, что в getch() вам нужно только нажать клавишу, но в cin вы должны нажать клавишу, а затем нажать клавишу ENTER.   -  person alilolo    schedule 27.03.2019


Ответы (1)


Мой проект был графическим, но в моем коде не было initwindow(lentgh,width). Поэтому я добавил эту команду в свой код перед циклом, а затем попытался снова (нажав клавишу, когда графическое окно было открыто). Тогда это сработало! Я не знаю причину, но это ответ на мой вопрос.

person alilolo    schedule 04.04.2019