@nadom

Как организовать параллельные процессы в С++ ?

Суть :
функция выводит информацию на экран.
переключение на следующий экран выполняется через 5 секунд или по нажатию любой кнопки.

т.е. мне нужно как-то разделить key = getch (); и sleep (5000);
С++, консоль
  • Вопрос задан
  • 3099 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
Идея состоит в том, чтобы ждать малое время (0.1с), потом проверять наличие символа в буфере клавиатуры, если он есть - стоп, если нет - повторяем цикл.

#include <conio.h>
#include <iostream>
#include <windows.h>

using namespace std;

bool waitKey(const size_t secondsToWait)
{
    int i=secondsToWait*10;
    for(;(i)&&(!_kbhit());i--)
    {
         Sleep(100);
         if(i%10==0)
         {
             cout<<i/10<<endl;
         }
    }
    //очистка буфера клавиатуры
    while(_kbhit())
    {
        getch();
    }
    return(i);
}

int main()
{
  cout<<"press any key..."<<endl;
  if(waitKey(5))
  {
      cout<<"Countdown was stopped by key" << endl;
  }
  else
  {
      cout<<"Countdown was not stopped"<<endl;
  }
  return 0;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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