📜  使用系统调用的C++中的计时器

📅  最后修改于: 2021-05-30 06:06:34             🧑  作者: Mango

任务是在不使用任何图形或动画的情况下创建计时器。必要时将使用系统调用来设置计时器。在这种情况下,计时器表示秒表具有递增计时的功能。

计时器是在Linux中创建的。使用Linux的以下系统调用:
睡眠():它会使得程序睡眠的作为参数传递给函数提供的秒数。
system() :通过将命令作为参数传递给此函数来执行系统命令。

以下是使用系统调用创建计时器的实现:

// CPP program to create a timer
#include 
#include 
#include 
#include 
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         \n";
    cout << setfill(' ') << setw(55) << " --------------------------\n";
    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) << " --------------------------\n";
}
  
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.在system()调用中使用“ cls”代替“ clear”
代替在睡眠(小写的“)函数的2.使用“S”在睡眠()函数。
3.包括windows.h头文件。

进行这些更改后,代码应在Windows上运行良好。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”