-1

K,大家好,我正在尝试做这样的事情:“在计算机屏幕上编写一个程序,显示在课程结束前还剩多少时间:如果到课程结束时还有超过 30 分钟要打印报告一些事情......”,所以我尝试了:

#include <iostream>
#include <cstdio>
#include <ctime>

using namespace std;
int main() {
    int startTime = 1, endTime;

    endTime = 30 * 3600;

    clock_t start = clock();


    cout<<"Time: "<< start <<'\n';

    if (start >= 7200)
    {
        // do something
    } else if (start == endTime)
    {
        // do something
    }
}

如果时间 == 数字,我希望它显示时间然后做一些事情。试过睡眠();但由于某种原因,我在代码块中遇到错误。

4

2 回答 2

2

我得到“睡眠没有在这个范围内声明”。尝试包括拥有它的库...

如果你在 Unix 中,#include <unistd.h>.

如果是 Windows,#include <windows.h>Sleep()改为使用。

于 2013-05-08T16:24:01.907 回答
0

有很多方法可以做到这一点。这是其中的 2 个:

使用升压计时器库这是更好的方法: http:
//www.boost.org/doc/libs/1_53_0/libs/timer/doc/original_timer.html

或者启动一个线程

static const int INTERVAL_SEC = 60;
static void* thread_timer_process(void*)
{
    do 
    {
        // Do something;

        sleep(INTERVAL_SEC);

        // don't forget to put a cancel point in here

    } while(true);  
}

int main()
{
    pthread_t thread_id;
    thread_create(&thread_id, null, thread_timer_process,  NULL);

    // Other things

    pthread_cancel(thread_id);   // interrupt thread running.

    void *result = NULL;        
    pthread_join(thread_id, &result);  // wait for thread ending.
}
于 2013-05-08T16:37:59.483 回答