2012-04-30 23 views
1

Visual C++/CLRをコンソールモードで使用しているプロジェクトで作業しています。 システムクロックをマイクロ秒単位で取得するにはどうすればよいですか?C++でマイクロ秒単位でシステムクロックを取得するには?

#include <stdio.h> 
#include <sys/time.h> 
int main() 
{ 
    struct timeval tv; 
    struct timezone tz; 
    struct tm *tm; 
    gettimeofday(&tv, &tz); 
    tm=localtime(&tv.tv_sec); 
    printf(" %d:%02d:%02d %ld \n", tm->tm_hour, tm->tm_min,tm->tm_sec, tv.tv_usec); 
    return 0; 
} 
+11

の作品を書いています。 –

答えて

1

あなたはブーストからptime microsec_clock::local_time()を使用することができます。 私はhours:minutes:seconds:microseconds

次のプログラムがうまく動作しますが、他のプラットフォームとの互換性はありませんを表示したいです。

マニュアルはhereです。

その後、std::string to_iso_extended_string(ptime)を使用して返された時間を文字列で表示したり、ptimeのメンバーを直接使用して自分で出力をフォーマットすることができます。

とにかくことは注目に値する:

Win32システムは、多くの場合、このAPIを介してマイクロ秒の分解能を達成していません。より高い解像度がアプリケーションにとって重要な場合は、プラットフォームをテストして達成された解像度を確認してください。

だから私はそれがあなたの "時計"がどれくらい正確であるかによって決まると思います。

0

氏ereOn

ありがとう、私はあなたの指示に従って、私はこのコード==>それはそう、英語を使用してください、これは国際的な場所である100%

#include <iostream> 
#include "boost/date_time/posix_time/posix_time.hpp" 

typedef boost::posix_time::ptime Time; 


int main(){ 

    int i; 
    Time t1; 

    for (int i=0;i<1000;i++) 
    { 

     t1=boost::posix_time::microsec_clock::local_time(); 
    std::cout << to_iso_extended_string(t1) << "\n"; 
    } 


    return 0; 
} 
+4

これはSOの仕組みではありません。あなたはeacOnの答えに応えるべきです - 完全なコードリストが必要だと思うなら_eit_ereOnの投稿かコメント機能を使ってコードを追加するようにereOnに依頼してください。 – jogojapan

関連する問題