-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
    }
}

time == number の場合に時間を表示してから何かをしたい。sleep(); を試しました。しかし、何らかの理由でコードブロックでエラーが発生しました。

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 に答える