C++, как управлять потоком программ с помощью ввода с клавиатуры

У меня есть основная процедура, которая повторяется бесконечно. Изменяя переменные bool с помощью ввода с клавиатуры, я хочу иметь возможность контролировать, будут ли вызываться определенные операторы if{} в этом цикле. Я нашел эту тему:
C неблокирующий ввод с клавиатуры,
но это кажется чрезмерно трудоемким и сложным для, казалось бы, базовой функциональности. Есть ли более простой способ сделать это?

3 ответа

Решение

Вам придется использовать OS/Firmware/Framework/ API для получения входных событий или использовать библиотеку, которая сделает это за вас. Во всяком случае, в C++ нет встроенного способа сделать это.

Я часто использую OIS в играх. Это кроссплатформенный и простой в использовании. Не уверен, что это полезно для других случаев, кроме игр, но это делает работу за вас.

Библиотека SDL является одним из способов сделать это кроссплатформенным. Вот пример опроса событий клавиатуры.

Поместите основную процедуру в поток, затем что-то вроде

static char mode = ' ';
while(mode != 27) // to allow Esc to end program
{
  mode = _getch();
}

Затем многопоточный код может делать разные вещи в зависимости от того, какая клавиша была нажата.

Другие вопросы по тегам