Таймер в C ++ с использованием системных вызовов
Задача - создать таймер без использования графики и анимации. Таймер будет запускаться с использованием системных вызовов там, где это необходимо. Таймер в данном контексте означает секундомер с обратным отсчетом времени.
Таймер создан в 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.