Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 3
Регистрация: 23.10.2012
Сообщений: 233

Секундомер

05.12.2013, 22:50. Показов 2767. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь написать секундомер, только вот не знаю как остановить его по нажатию клавиши и вернуть текущий результат:

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 вроде не то
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2013, 22:50
Ответы с готовыми решениями:

Секундомер на С++
Добрый день. Подскажите, как написать простейший консольный секундомер на с++ без использования сторонних библиотек. Нужно, чтобы при...

Секундомер
Доброго времени суток. Проверьте пожалуйста программу, работающую аналогично секундомеру. Вот я сделал программу С++, но не...

Секундомер
Сделал такой небольшой код, что-то на подобии теста на сколько быстро вы печатаете. Никак до меня не дойдет как сюда секундомер влепить?...

3
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
06.12.2013, 00:32
нажатием клавиши в консоли остановить не очень просто
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;
}
1
4 / 4 / 3
Регистрация: 23.10.2012
Сообщений: 233
06.12.2013, 00:51  [ТС]
Умгу

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

Я конечно не того еще уровня, что экономить каждый байт
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.12.2013, 01:37
Когда то писал такое, вот (на С++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;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2013, 01:37
Помогаю со студенческими работами здесь

секундомер
Здраствуйте! Мне задали на практику составить программу «Секундомер», позволяющую записывать результаты соревнований и сохранять их в базу,...

Секундомер на c++
Создайте класс stopwatch для имитации секундомера. Используйте конструктор для начальной установки секундомера в 0. Образуйте две...

секундомер
Здравствуйте госпола програмисты!У меня такой вопрос-как сделать секундомер,что бы он не зависел от программы?грубо говоря он находиться в...

Секундомер.
Знаю подобные темы уже рассматривались на форуме, но ни в одной из них я не нашел ответа мой вопрос... Как организовать секундомер что бы...

Секундомер
Народ нужна помощь Задачка такая: нужно сделать Секундомер как в электронных часах ввиде: 00:00 когда будет 00:59 нужно что бы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru