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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
Rise of Death
1 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 24
#1

События по таймеру (в консоли) - C++

11.03.2009, 08:15. Просмотров 2384. Ответов 13
Метки нет (Все метки)

Как в консоли можно сделать что бы какой-то участок кода выполнялся через каждые n секунд, так, что бы программа завершала выполнение этого участка и начинала его выполнять снова, если он не успел выполнится (что бы, например, getch() не ждала вечно, пока пользователнь что-то нажмет).

По типу, как в билдере OnTimer
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2009, 08:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос События по таймеру (в консоли) (C++):

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

Не обрабатываются события мыши в консоли - C++
Препод дал код, который ,как пример, показывает обработку событий мыши. Так вот в аудитории все работает как надо, а дома после запуска -...

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

Обработка события нажатия клавиши мыши в консоли - C++
Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный исходник в консольном приложении когда нажимается левая кнопка он...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли - C++
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

считывание с консоли ( не с клавы, а именно с консоли) - C++
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YurA_280784
Заблокирован
11.03.2009, 10:48 #2
Используй функцию
C++
1
void Sleep(DWORD dwMilliseconds);
- замораживает прогу на dwMilliseconds милисекуд,вот. Заголовок функции находится в хедере <winbase.h>
Rise of Death
1 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 24
11.03.2009, 11:12  [ТС] #3
А как сделать, что бы прога не ждала вечно пока я нажму какую-нибудь клавишу (если я поставлю че-нить вроде getch()), а просто через какой-то промежуток времени пропускала данный фрагменрт кода?
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
11.03.2009, 11:23 #4
Так тебе же YurA_280784 уже сказал. Поставь эту функцию в цикл и все.
Rise of Death
1 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 24
11.03.2009, 12:14  [ТС] #5
Вот написал програмку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <winbase.h>
#include <conio.h>
void main()
{
int i=0;
while(true)
{
 
Sleep(50);
cout<<i<<endl;
i++;
getch();
}
 
}
При компиляции выдает кучу ошибок (непонятных).

Добавлено через 6 минут 23 секунды
Код
Info :Compiling C:\Documents and Settings\АдМиНчЕг\Рабочий стол\Лабы 2 семестр\Тест.cpp
Error:  winbase.h(199,21):Type name expected
Error:  winbase.h(199,21):Declaration missing ;
Error:  winbase.h(200,25):Type name expected
Error:  winbase.h(200,25):Multiple declaration for '_OVERLAPPED::DWORD'
Error:  winbase.h(199,25):Earlier declaration of '_OVERLAPPED::DWORD'
Error:  winbase.h(200,25):Declaration missing ;
Error:  winbase.h(201,19):Type name expected
Error:  winbase.h(201,19):Multiple declaration for '_OVERLAPPED::DWORD'
Error:  winbase.h(200,19):Earlier declaration of '_OVERLAPPED::DWORD'
Error:  winbase.h(201,19):Declaration missing ;
Error:  winbase.h(202,23):Type name expected
Error:  winbase.h(202,23):Multiple declaration for '_OVERLAPPED::DWORD'
Error:  winbase.h(201,23):Earlier declaration of '_OVERLAPPED::DWORD'
Error:  winbase.h(202,23):Declaration missing ;
Error:  winbase.h(203,19):Type name expected
Error:  winbase.h(203,19):Declaration missing ;
Error:  winbase.h(207,18):Type name expected
Error:  winbase.h(207,18):Declaration missing ;
Error:  winbase.h(208,32):Type name expected
Error:  winbase.h(208,32):Declaration missing ;
Error:  winbase.h(209,24):Type name expected
Error:  winbase.h(209,24):Declaration missing ;
Error:  winbase.h(213,20):Type name expected
Error:  winbase.h(213,20):Declaration missing ;
Error:  winbase.h(214,19):Type name expected
Error:  winbase.h(214,19):Too many error or warning messages
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
11.03.2009, 14:37 #6
Не winbase.h, а windows.h.
Rise of Death
1 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 24
11.03.2009, 20:23  [ТС] #7
а как сделать что бы программа не ждала вечно, пока я нажму клавишу (как в приведеной мною программе), а подождав какой-то время пропукала участок кода, если не совершается никаких действий?
DanUnited
Программист TH
289 / 144 / 7
Регистрация: 06.01.2009
Сообщений: 537
11.03.2009, 20:36 #8
а сам TTimer нельзя создать в консоли?? Это ж вроде невизуальный компонент.
Добавить только ExtCtrls.hpp .... или нет???
YurA_280784
Заблокирован
12.03.2009, 10:19 #9
Ребята чё вы паритесь просто windows.h подключите и всё, понятно что ошибки лезут из-за того что чего-то не хватает. Вообще советую windows.h подключать всегда, на всякий случай

Добавлено через 3 минуты 5 секунд
Ваще Rise of Death лови

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
#include <windows.h>
#include <winbase.h>
 
void main()
{
    int i=0;
    while(true)
    { 
        cout<<i<<"\r\n";
        i++;
        Sleep(5);
    } 
}
Добавлено через 1 минуту 46 секунд
#include <iostream.h>
#include <windows.h>
#include <winbase.h>

Какя -то параша вышла когда код С++ отметил извиняюсь(правда єт не мои бока, админы обратите внимане что коверкается код в теге С++!!!)

Добавлено через 1 минуту 20 секунд
<> Какой-то писец, чё скобки &lt; какой-то фигнёй выходят?
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
12.03.2009, 10:30 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
#include <windows.h>
#include <winbase.h>
 
void main()
{
    int i=0;
    while(true)
    { 
        cout<<i<<"\r\n";
        i++;
        Sleep(5);
    } 
}
Я нашел ошибку. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <windows.h>
#include <winbase.h>
 
int main()
{
    int i=0;
    while(true)
    { 
        cout<<i<<"\r\n";
        i++;
        Sleep(5);
    }
return 0; 
}
Всево-то Стандартный C++ требует чтобы программа возвращала 0.
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
12.03.2009, 11:35 #11
для того чтобы выполнять что-то по таймеру нужно использовать функцию SetTimer()
посмотри в msdn про неё
YurA_280784
Заблокирован
12.03.2009, 12:58 #12
void main() Катит, вообще кто сказал что майн должен что-то возвращать или быть с параметрами
делаю на Visual Studio 6.0 ConsoleAplication - НЕ НАДО ИСКАТЬ ЕРРОР ГДЕ ЕГО НЕТУ!
Rise of Death
1 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 24
12.03.2009, 16:49  [ТС] #13
Спасибо, эту часть я понял.
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
13.03.2009, 08:58 #14
Цитата Сообщение от YurA_280784 Посмотреть сообщение
void main() Катит, вообще кто сказал что майн должен что-то возвращать или быть с параметрами
делаю на Visual Studio 6.0 ConsoleAplication - НЕ НАДО ИСКАТЬ ЕРРОР ГДЕ ЕГО НЕТУ!
Ладно ладно. Но у меня на DevC++ не работает без int
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2009, 08:58
Привет! Вот еще темы с ответами:

Прерывание по таймеру - C++
Здравствуйте! Возможно ли сделать в консольном приложении на Visual Studio так, чтобы во время работы одного из циклов программы, раз...

Исключение по таймеру - C++
В программе есть последовательно исполняющиеся функции. В любой из них программа может зависнуть. Мне нужно сделать так, чтобы зависание...

Привязка к таймеру - C++
Здравствуйте!У меня такая проблема - делаю прогу, которая должна сохранять заскриненное изображение раз в 15 секунд. Немного не понимаю...

Вызов функции по таймеру в с++ - C++
Делаю слайдщоу в с++. При этом считываю путь к файлам из базы данных. Прописал функции таймера, смены слайда, выхода с нажатием клавиши....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.03.2009, 08:58
Ответ Создать тему
Опции темы

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