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

Секундомер на С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.67
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
11.03.2013, 18:42     Секундомер на С++ #1
Добрый день. Подскажите, как написать простейший консольный секундомер на с++ без использования сторонних библиотек. Нужно, чтобы при вызове функции начинался отсчет времени (и отображался в консоли) и при нажатии на определенную кнопку он завершался, а время присваивалось переменной
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:42     Секундомер на С++
Посмотрите здесь:

Секундомер C++
секундомер C++
Секундомер. C++
Секундомер C++
Секундомер и thread-safe C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
11.03.2013, 19:16     Секундомер на С++ #2
Набросал по быстрому некий пример, но думаю что найдется решения и по лучше.
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
#include <iostream>
#include <thread>
#include <chrono>
 
int main()
{
    setlocale (0, "Russian");
    std::cout<<"Нажимайте пробел для запуска и приостановки секундомера\n";
    char ch;
    auto start = std::chrono::high_resolution_clock::now();
    auto stop = start;
    while (true)
    {
        if (std::cin.get(ch) && ch == ' ')
        {
            start = std::chrono::high_resolution_clock::now();
            std::cin.get();
            std::cout<<"START\n";
        }
        if (std::cin.get(ch) && ch == ' ')
        {
            stop = std::chrono::high_resolution_clock::now();
            std::cin.get();
            std::cout<<"STOP";
            std::cout<<"\nTime: "<<std::chrono::duration_cast<std::chrono::seconds>(stop-start).count()
           <<" seconds\n";
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
    }
   return 0;
}
srg_btl
33 / 33 / 2
Регистрация: 21.02.2013
Сообщений: 90
11.03.2013, 19:20     Секундомер на С++ #3
C++
1
2
3
4
5
6
#include <ctime>
...
clock_t t0 = clock();
//что-нить делаем
clock_t t1 = clock();
cout << "time: " << (double)(t1 - t0) / CLOCKS_PER_SEC << endl;
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
11.03.2013, 19:38  [ТС]     Секундомер на С++ #4
Цитата Сообщение от yuron_477 Посмотреть сообщение
Набросал по быстрому некий пример, но думаю что найдется решения и по лучше.
Код C++

#include <iostream>
#include <thread>
#include <chrono>
int main()
{
* * setlocale (0, "Russian");
* * std::cout<<"Нажимайте пробел для запуска и приостановки секундомера\n";
* * char ch;
* * auto start = std::chrono::high_resolution_clock::now();
* * auto stop = start;
* * while (true)
* * {
* * * * if (std::cin.get(ch) && ch == ' ')
* * * * {
* * * * * * start = std::chrono::high_resolution_clock::now();
* * * * * * std::cin.get();
* * * * * * std::cout<<"START\n";
* * * * }
* * * * if (std::cin.get(ch) && ch == ' ')
* * * * {
* * * * * * stop = std::chrono::high_resolution_clock::now();
* * * * * * std::cin.get();
* * * * * * std::cout<<"STOP";
* * * * * * std::cout<<"\nTime: "<<std::chrono::duration_cast<std::chrono::seconds>(stop-start).count()
* * * * * *<<" seconds\n";
* * * * }
* * * * std::this_thread::sleep_for(std::chrono::milliseconds(100));
* * }
* *return 0;
}
А можно как-то сделать, чтобы таймер отображался в реальном времени?
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
11.03.2013, 21:47     Секундомер на С++ #5
блин тут на этом форуме этих секундомеров как собак
NiJeTi
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 2
08.01.2014, 13:48     Секундомер на С++ #6
C++
1
2
3
4
5
6
for(int sec = 0;; sec++)
    {
        system("cls");
        cout << sec << "sec";;
        Sleep(970);
    }
Sleep(970), а не 1000, потому что 30 мсек уходит на обработку. А с 1000 у вас будет не точно.
Yandex
Объявления
08.01.2014, 13:48     Секундомер на С++
Ответ Создать тему
Опции темы

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