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

Таймер c++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
semyonpetrov
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 8
15.04.2014, 16:22     Таймер c++ #1
как создать таймер в с++ ? чтоб с каждой секундой переменная увеличивалась на 1 или каждую секунду выводилось какое-либо сообщение.
заходил в википедию но ничего не понял.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 16:22     Таймер c++
Посмотрите здесь:

Таймер C++
C++ таймер
C++ Таймер
C++ таймер
C++ таймер c++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
15.04.2014, 16:28     Таймер c++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
#include <windows.h>
//...
int i = 0;
while (i < 5)
{
    Sleep(1000);    //задержка в 1000 миллисекунд (1 секунда)
    std::cout << "Message" << std::endl;
    i++;
}
newbie666
Заблокирован
15.04.2014, 16:36     Таймер c++ #3
Цитата Сообщение от dimcoder Посмотреть сообщение
Sleep(1000);
ща кстате в С++ 11 сделали свой 'Sleep', включённый в стандарт, то есть не обязательно даже WinApi использовать:
Вместо Sleep(1000); можно написать std::this_thread::sleep_for(std::chrono::seconds(1));, подключив пару инклюдников:
C++
1
2
#include <chrono>
#include <thread>
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
15.04.2014, 16:45     Таймер c++ #4
Таймер WinAPI:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
 
int i = 0;
 
void my_func(void)
{
    ++i;
}
 
int main(void)
{
    unsigned short t = SetTimer(0, 0, 1000, my_func);
    while (true) {};
}
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
15.04.2014, 16:46     Таймер c++ #5
newbie666, полезная вещь. Раз уж такой компот пошел, то вот для коллекции
C++
1
2
3
4
5
6
7
8
9
#include <windows.h>
 
int main()
{
    unsigned int toGo = 1000, start = GetTickCount();    
    while (start + toGo >= GetTickCount())
        ;
    return 0;
}
PS: WinApi - Портативность: 3 - 1, если так можно выразиться.
semyonpetrov
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 8
15.04.2014, 16:53  [ТС]     Таймер c++ #6
спасибо всем.
newbie666
Заблокирован
15.04.2014, 16:56     Таймер c++ #7
Цитата Сообщение от dimcoder Посмотреть сообщение
Раз уж такой компот, то вот для коллекции
нуу в WinApi есть много полезных штуковин. И вообще, если ты пишешь программу под Windows - несомненно надо использовать Windows SDK вместо стандартных фишек С++ по возможности. (Долго рассказывать почему)
А по поводу компота, вот тогда тоже для коллекции высокоточный таймер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <tchar.h>
#include <iostream>
#include <windows.h>
 
int _tmain(int argc, _TCHAR* argv[])
{   
    LARGE_INTEGER perfFreq, perfCounter;
    QueryPerformanceFrequency(&perfFreq);
    LONGLONG prevValue = 0;
    while (true)
    {
        QueryPerformanceCounter(&perfCounter);
        LONGLONG currentValue = perfCounter.QuadPart / perfFreq.QuadPart;
        if(currentValue != prevValue)
        {
            prevValue = currentValue;
            std::cout << currentValue << std::endl;
        }
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 17:51     Таймер c++
Еще ссылки по теме:

C++ Таймер
Таймер C++
таймер C++

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

Или воспользуйтесь поиском по форуму:
don_keyhot
 Аватар для don_keyhot
4 / 4 / 2
Регистрация: 02.04.2014
Сообщений: 60
15.04.2014, 17:51     Таймер c++ #8
может это поможет (Прохоренок Н.А. "Программирование в VS 2010"):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//ЛИСТИНГ 7.4. Измepение времeни въполнения
#include <iostream> 
#include  <сtime> 
#include <windows.h> 
int main ()
{
  std::clock_t t1, t2, t3;
 
  t1 = std::c1ock(); // Метка 1 
  std::cout << "t1 = " << t1 << std::endl; 
  Sleep (2000); // Имитация фраrмента кода 
 
  t2 = std::c1ock(); // Метка 2 
  std::cout << "t2 = " << t2 << std::endl; 
 
  t3 = t2 - t1; // Разница между метками 
  std::cout << "t3 = " << t3 << std::endl; 
  std::cout << (t3 / CLOCKS_PER_SEC) << " sec. " << std::endl;
  std::cin.get ();
 
  return о;
}
Yandex
Объявления
15.04.2014, 17:51     Таймер c++
Ответ Создать тему
Опции темы

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