Таймер на C++ (ctime)

Практически в любой прорамме необходим контроль времени. Конечно вам может понадобится запустить таймер отдельным потоком и периодически «смотреть который час», но в этой статье я расскажу всего лишь о функции, которая отсчитывает заданное время в миллисекундах и завершает своё действие. Эта функция весьма и весьма похожая на sleep() функция…

Подключим заголовочные файлы:

#include <iostream>

#include <ctime>   // для работы со временем

using namespace std;

… отличием нашей функции (путь это будет how2timer) является то, что она принимает значение времени в миллисекундах 😉

Для всех делов мы воспользуемся функцией clock(), которая возвращает время, измеряемое процессором в тактах от начала выполнения программы, или ?1, если оно не известно. Проверок делать не будем) не до того нам =)

Также оприделена константа CLOCKS_PER_SEC — это количество тактов системных часов в секунду.
Нам естественно необходимо пересчитать это время для работы с миллисекундами.
Когда константа готова сосчитаем время завершения отсчёта…

void how2timer(int ms) {

    int CLOCKS_PER_MSEC = CLOCKS_PER_SEC / 1000;   /// новая константа

       /* выведем константы «для наглядности» */
    cout << «CLOCKS_PER_SEC: » << CLOCKS_PER_SEC << endl;
    cout << «CLOCKS_PER_MSEC: » << CLOCKS_PER_MSEC << endl;

    clock_t end_time = clock() + ms * CLOCKS_PER_MSEC ;  // время завершения

    while (clock() < end_time) {}  // цикл ожидания времени

    cout << «Время вышло!!!\n»;  // сообщение о конце работы функции

}

Ну и воспользуемся функцией:

int main (){

    how2timer(5000);  // 5 секунд

    return 0;

}

Вот и всё…

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий