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

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

Восстановить пароль Регистрация
 
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
05.12.2013, 22:50     Секундомер #1
Пытаюсь написать секундомер, только вот не знаю как остановить его по нажатию клавиши и вернуть текущий результат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>  
#include <windows.h>
#include <time.h>
using namespace std;
 
void Counter(int min, int max){
        for(k=min;k<max;k++){
            cout<<k<<" ";
            Sleep(10);
        system("cls");
    }
}
int main(){
    Counter(1,100);
}
Добавлено через 45 секунд
!kbhit вроде не то
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 22:50     Секундомер
Посмотрите здесь:

Секундомер C++
секундомер C++
Секундомер. C++
Секундомер C++
C++ Секундомер на С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.12.2013, 00:32     Секундомер #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
32
33
34
35
36
37
38
#include <Windows.h>
#include <iostream>
#include <clocale>
 
int main()
{
    std::setlocale(0, "");
    std::cout << "Для запуска секундомера нажмите <Enter>!" << std::endl;
    std::getchar();
 
    size_t millisecondsCounter(0);
    size_t secondsCounter(0);
    size_t minutesCounter(0);
 
    char isStopCounter;
    while (true) {
        std::system("cls");
        std::cout << "Секундомер: " << std::endl;
        std::cout << minutesCounter << " минут(а) " << (secondsCounter) << " секунд(a/ы) " << (millisecondsCounter++) << " миллисекунд";
        if (millisecondsCounter == 10) {
            millisecondsCounter = 0;
            secondsCounter++;
        }
        if (secondsCounter == 60) {
            minutesCounter++;
            secondsCounter = 0;
        }
        if (!(minutesCounter % 1) && (minutesCounter >= 1) && !secondsCounter && !millisecondsCounter) {
            std::cout << std::endl << "Продолжить? (Y / N) --> ";
            std::cin >> isStopCounter;
            if (isStopCounter == 'N' || isStopCounter == 'n')
                break;
        }
    }
 
    std::system("pause");
    return 0;
}
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
06.12.2013, 00:51  [ТС]     Секундомер #3
Умгу

Добавлено через 7 минут
И еще один вопрос:
неужели using namespace std; - настолько тяжелая библиотека ,что std::->->-->-::std<<endl;
прикольно каждый раз писать?

Я конечно не того еще уровня, что экономить каждый байт
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.12.2013, 01:37     Секундомер #4
Когда то писал такое, вот (на С++11):
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 <iomanip>
#include <thread>
#include <chrono>
#include <conio.h>
 
int main()
{
   auto start = std::chrono::high_resolution_clock::now();
   unsigned minutes, seconds, milliseconds;
   while (true)
   {
       milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now()-start).count();
       seconds = milliseconds/1000;
       milliseconds %= 100;
       minutes = seconds/60;
       seconds %= 60;
       std::cout<<std::setw(2)<<minutes<<"."<<std::setw(2)<<seconds<<"."<<std::setw(2)<<milliseconds;
       std::this_thread::sleep_for(std::chrono::milliseconds(10));
       std::system("cls");
       if (kbhit())
       {
           std::cout<<"STOP\n";
           std::cin.get();
           break;
       }
   }
   std::cout<<"\nTime: "<<std::setw(2)<<minutes<<"."<<std::setw(2)<<seconds<<"."<<std::setw(2)<<milliseconds<<"\n";
 
   return 0;
}
Yandex
Объявления
06.12.2013, 01:37     Секундомер
Ответ Создать тему
Опции темы

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