Есть ли функция, которая объединяет функции kbhit () и getch ()? - PullRequest
0 голосов
/ 16 марта 2012

Я хочу функцию, которая объединяет функции kbhit () и getch () .
Другими словами, я хочу, чтобы, когда программа работала, если я нажал клавишу 'q' , программа останавливается без временной остановки, чтобы получить символ, как и функция getch ().
Я хочу объединить преимущество kbhit () с преимуществом getch () .

Надеюсь, вы поняли мою цель.

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

kbhit говорит вам, есть ли персонаж, ожидающий. getch вернет следующий символ, ожидая одного, если это необходимо. Единственная естественная комбинация из двух, о которой я могу подумать, это та, которая вернет символ, если он есть, но не будет ждать, если символа нет Это легко сделать, если у вас уже есть kbhit и getch:

/* Returns a character from stdin, if there is one.
 * Otherwise, returns -1. */
int getch_nonblocking(void)
{
  return kbhit() ? getch() : -1;
}
0 голосов
/ 16 марта 2012

Исходя из вашего упоминания kbhit и getch, вы, вероятно, используете Windows. В этом случае вы можете попробовать GetKeyboardState.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...