Таймер в C ++ с использованием системных вызовов

Опубликовано: 4 Декабря, 2021

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

Таймер создан в Linux. Используются следующие системные вызовы Linux:
sleep () : заставит программу спать на количество секунд, указанное в качестве аргументов функции.
system () : используется для выполнения системной команды путем передачи команды в качестве аргумента этой функции.

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Ниже представлена реализация для создания таймера с использованием системных вызовов:

// CPP program to create a timer
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
using namespace std;
// hours, minutes, seconds of timer
int hours = 0;
int minutes = 0;
int seconds = 0;
// function to display the timer
void displayClock()
{
// system call to clear the screen
system ( "clear" );
cout << setfill( ' ' ) << setw(55) << " TIMER " ;
cout << setfill( ' ' ) << setw(55) << " -------------------------- " ;
cout << setfill( ' ' ) << setw(29);
cout << "| " << setfill( '0' ) << setw(2) << hours << " hrs | " ;
cout << setfill( '0' ) << setw(2) << minutes << " min | " ;
cout << setfill( '0' ) << setw(2) << seconds << " sec |" << endl;
cout << setfill( ' ' ) << setw(55) << " -------------------------- " ;
}
void timer()
{
// infinte loop because timer will keep
// counting. To kill the process press
// Ctrl+D. If it does not work ask
// ubuntu for other ways.
while ( true ) {
// display the timer
displayClock();
// sleep system call to sleep
// for 1 second
sleep(1);
// increment seconds
seconds++;
// if seconds reaches 60
if (seconds == 60) {
// increment minutes
minutes++;
// if minutes reaches 60
if (minutes == 60) {
// increment hours
hours++;
minutes = 0;
}
seconds = 0;
}
}
}
// Driver Code
int main()
{
// start timer from 00:00:00
timer();
return 0;
}

Выход:

Примечание. Это можно сделать для работы в Windows с небольшими изменениями.
Требуются модификации:
1. Используйте «cls» вместо «clear» в вызове system ().
2. Используйте букву «S» в функции sleep () вместо строчной буквы «s» в функции sleep ().
3. Включите заголовочный файл windows.h.

Код внесения этих изменений должен отлично работать в Windows.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .