C ++ Получить ctrl- c и специальные клавиши для работы при получении символов от пользователей, вводимых на windows - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать программу, в которой пользователи вводят информацию, а программа читает ее по символам. Я пытаюсь использовать SetConsoleMode для смены консоли. Я понимаю, что мне нужно установить ENABLE_PROCESSED_INPUT, но когда он установлен, клавиши со стрелками не работают. Кроме того, для распознавания клавиши ввода требуется ввод другой клавиши. Как исправить это на windows?

  HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
  DWORD mode = 0;
  GetConsoleMode(hStdin, &mode);
  SetConsoleMode(hStdin, mode & ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT) | ENABLE_PROCESSED_INPUT);
  int c = getchar();
  SetConsoleMode(hStdin, mode);
  return c;

Для пояснения, я захватываю SIGINT из ctrl- c где-то еще, поэтому мне нужна консоль для отправки сигнала.

...