2013-10-18 12 views

答えて

13

EDIT2017:C++ 11 sleep_forがこれを行う正しい方法です。 Xornad's answer, belowをご覧ください。


C++ 03:

のMac OS XがUnixベースされているので、あなたはほとんど常にちょうど標準的なLinuxの機能を使用することができます!

この場合、usleep(マイクロ秒単位で時間がかかります)を使用してミリ秒単位で1000ミリ秒を掛けるだけです。この機能の詳細については

#include <unistd.h> 
int main() { 
    usleep(1000); // will sleep for 1 ms 
    usleep(1); // will sleep for 0.001 ms 
    usleep(1000000); // will sleep for 1 s 
} 

、Linuxのmanページをチェックしてください:あなたは、コンパイラでC++ 11のサポートを持っている場合は

http://linux.die.net/man/3/usleep

+0

OS 10.7以上でコンパイルする場合、下記のXornandの答えをご覧ください! C++ 11を使用すると、OS固有のコードを使用するよりもはるかにクロスプラットフォームです! – NHDaly

+0

でC++ 11の機能を使用するには、Xcodeでその機能を有効にする必要があります。 @ Xornandの答えに私のコメントを参照してください! – NHDaly

+0

スリープ(0.001f)は0秒間スリープします(スリープはintをとります) – cap

12

は、あなたがsleep_forを使用してを避けることができますがOS固有のAPIを使用します。 (http://en.cppreference.com/w/cpp/thread/sleep_for

#include <thread> 
#include <chrono> 

int main() 
{ 
    std::this_thread::sleep_for(std::chrono::milliseconds(1000)); 
    return 0; 
} 
+0

xcode 4.6.3ではC++ 11のサポートが利用できますが、ヘッダースレッドは存在しませんか? –

+1

これは私よりはるかに良い答えです! (ありがとうXornand、私はこれらを使用することは考えていませんでした!) – NHDaly

+0

XcodeでC++ 11ヘッダーをコンパイルするには、C++ 11ライブラリのサポートを有効にする必要があります。ナビゲーターでプロジェクトに移動し、[ビルド設定]をクリックして、C++標準ライブラリを検索します。プロジェクトの設定を 'libC++'に変更してください。 この情報を反映するためにXornandの優れた回答を編集しましたが、編集内容が承認されるまで表示されません。 :) – NHDaly

関連する問題