Форум программистов, компьютерный форум CyberForum.ru

когда delay-я не хватает... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Исаев А.С.
Сообщений: n/a
13.06.2011, 18:02     когда delay-я не хватает... #1
Пацаны, проблемка. Пишу программу на С++ и нужна мне задержка во времени, но такая, чтобы во время этой задержки пользователь мог вводить данные.

Ну или переформулировав: как отложить выполнение функции во во времени на определенное количество времени.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
13.06.2011, 18:30     когда delay-я не хватает... #2
честно не очень понял что именно ты хочешь, используй sleep()
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
13.06.2011, 18:43     когда delay-я не хватает... #3
sleep+отдельный поток
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <boost/bind.hpp>
#define BOOST_THREAD_USE_LIB
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
#include <string>
 
void f(std::string s){
    boost::this_thread::sleep(boost::posix_time::seconds(3));
    std::cout<<s<<std::endl;
}
 
int main (){
    boost::thread t(boost::bind(f, "function f()"));
    std::cout<<"Enter string\n";
    std::string s;
    getline(std::cin, s);
    std::cout<<"Your string: "<<s<<std::endl;
    t.join();
    return 0;
}
Исаев А.С.
Сообщений: n/a
13.06.2011, 18:45     когда delay-я не хватает... #4
Цитата Сообщение от From_Tula Посмотреть сообщение
честно не очень понял что именно ты хочешь, используй sleep()
в ощих чертах нужно чтобы пользователь мог вводить данные с клавиатуры только в течении определенного времени.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
13.06.2011, 19:02     когда delay-я не хватает... #5
вот такое решение сделал
sleepK можно в принципе ставить любое (от него зависит то сколько надо будет ждать от нажатия клавиши до появления на экране её)

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
34
35
int main()
{
 
    int sec=5; // сюда сколько ждать
 
    std::string str="";
 
    int sleepK=10;
    int realsec=sec*1000/sleepK; // 1000 потому что 1000мс. = 1 с.
    int cur=0;
 
 
    while (1) {
 
        if (kbhit()) { std::cin >> str; std::cin.ignore(); break; }
 
        Sleep(sleepK);
        cur++;
 
        if (cur>=realsec) break;
 
    }
 
 
    if (str=="") std::cout << "missed\n";
    else
    std::cout << str << '\n';
 
 
 
 
 
    getchar();
    return 0;
}
ну для винды естественно.
Yandex
Объявления
13.06.2011, 19:02     когда delay-я не хватает...
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru