@Warinator

Как сделать, чтобы ожидание нажатия клавиши происходило параллельно с обновлением данных?

Мне нужно реализовать простейший эмулятор чата. Для этого требуется в цикле обновлять буфер сообщений и при наличии нового вывести его на экран. При этом нужно иметь возможность самому ввести сообщение и занести его в буфер, а также возможность выйти из цикла, например, при нажатии Esc.
Принцип должен быть примерно такой:
while(1)
{
      //если есть новое сообщение, вывести его на экран
     //если пользователь вводит сообщение (или нажимает Esc), обработать это действие
     //иначе, перейти к след. итерации
}

Варианты вроде getch(), scanf() останавливают цикл, вне зависимости от того, желает ли пользователь ввести что-либо. Подскажите, как решить эту проблему.
  • Вопрос задан
  • 871 просмотр
Решения вопроса 1
@Warinator Автор вопроса
Всё, что мне нужно было - это функция kbhit().
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Multi-threading вас спасет.
Тут надо еще кончено смотреть на то, чем вы GUI рисуете, может можно как то в нем реализовать.
Ответ написан
Комментировать
tlito
@tlito
drupal, c++, seo
то есть вам нужно запустить параллельный процесс в фоновом режиме, который отлавливает нажатия клавиши и вызывает функцию при нажатии esc ?
я не пробовал но нашел OpenMP https://software.intel.com/ru-ru/blogs/2011/11/21/...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы