Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Buby
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 58
#1

Ожидание ввода в течении заданного времени - C++

18.04.2017, 07:10. Просмотров 246. Ответов 4
Метки нет (Все метки)

Суть задачи:Если пользователь в течении 30 сек не вводит ничего программа выполняет одно действие, если же вводит другое.
В потоке мейна я ввожу слово, а во втором потоке работет Sleep. Не могу придумать как так сделать чтобы при вводе в мейне слова поток 2 заканчивал работу. Поток создавал c помощью библиотеки thread.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2017, 07:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ожидание ввода в течении заданного времени (C++):

По истечении заданного промежутка времени открывать звуковой файл в компоненте MediaPlayer - C++ Builder
Здравствуйте, пытаюсь написать таймер, чтобы не забывать снимать чайник с плиты. Хочу чтобы по истеении заданого промежутка времени...

Программа-таймер, которая по истечении заданного промежутка времени выводит сообщение - C++ Builder
Уважаемые программисты,помогите с программкой. программа-таймер, которая по истечении заданного промежутка, времени, величина...

ProgressBar - заполнение в течении 30 минут - C++ Builder
Доброго времени суток, помоги пожалуйста, у меня на форме есть ТАймер и прогресс бар, как сделать что б прогрес бар заполнялся в течении 30...

Нажатие клавиши в течении определённого времени - C++
Напишите простенькую программу, которая делает следующее: Если втечение (допустим) пяти секунд если была нажата любая клавиша, то...

Ожидание ввода - C++
Нужно выполнять процесс (функцию), пока пользователь не нажмет клавишу паузы. Потом опять возобновить по нажатию на клавишу. Как это...

Ожидание ввода с клавы - C++
Господа программеры! У меня прога, которая в цикле в фоновом режиме ожидает нажатия комбинации клавиш. При этом процессорных ресурсов...

4
Почтальон
Модератор
408 / 334 / 59
Регистрация: 22.03.2015
Сообщений: 2,661
Завершенные тесты: 1
18.04.2017, 09:16 #2
А почему именно консоль ?
0
Buby
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 58
18.04.2017, 12:29  [ТС] #3
Почтальон, Такая задача
0
hoggy
6690 / 2872 / 492
Регистрация: 15.11.2014
Сообщений: 6,461
Завершенные тесты: 1
18.04.2017, 12:33 #4
Цитата Сообщение от Buby Посмотреть сообщение
thread.
http://www.cplusplus.com/reference/c...tion_variable/
https://habrahabr.ru/post/182626/
1
Buby
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 58
19.04.2017, 10:10  [ТС] #5
hoggy,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <condition_variable>
#include <iostream>
#include <random>
#include <thread>
#include <mutex>
#include <queue>
#include <windows.h>
#include <string>
#include <conio.h>
#include <stdlib.h>
using namespace std;
mutex old;
condition_variable btr;
void pot(int &z,int &time) {
    unique_lock<mutex> locker(old);
    btr.wait(locker, [&]() {return z==1;});
    z--;
    Sleep(time);
    cout << "kbdv";
}
int main()
{
    int z = 0,time=5000;
    string q, w, e;
    while (1) {
        getline(cin, q);
        thread po1(pot, ref(z), ref(time));
        po1.detach();
        btr.notify_one();
        z++;
    }
    _getch();
}
Тестовый код. При множетсвенном вводе не ожидая 5 сек. Что-то случается с 2 потоком.

Добавлено через 23 минуты
Нашел в чем проблема(Следующий поток начинается после слипа), теперь проблема в том как когда надо пропускать слип
0
19.04.2017, 10:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2017, 10:10
Привет! Вот еще темы с ответами:

Ожидание ввода пробела в с++ - C++
Добрый вечер. Есть вот такой вот код: char c; cout &lt;&lt; &quot;Введите энтер для продолжения&quot; &lt;&lt; endl; c = (char)_getch(); if((c ==...

Ожидание ввода. Таймер - C++
нужен цикл, который будет идти нужное мне время и/или до ввода слова с клавиатуры. как сделать цикл? допустим есть 30 сек на ввод...

Ожидание определенного времени - C++
Есть программа(кода нет ибо задумка пока), которая должна в начале каждого часа и посередине брать логи в папке и сжимать в zip. Все...

Ожидание ввода строки в консоле Linux - C++
Перепробовал кучу вариантов, но так и не получилось реализовать программу, которая ожидает ввода с клавиатуры в течение 10 секунд. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru