C ++, как управлять потоком программ с помощью ввода с клавиатуры - PullRequest
0 голосов
/ 05 марта 2011

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

Ответы [ 3 ]

3 голосов
/ 05 марта 2011

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

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

1 голос
/ 05 марта 2011

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

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

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

1 голос
/ 05 марта 2011

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

...