3

私はプログラムを書いていて、コードの特定のブロックが実行されるときに経過する秒数を計ろうとしています。その後、コードのブロックを実行するのにかかった合計時間を秒単位で出力したいと思います。私が書いたものは次のとおりです。

time_t start = time(0);
// block of code
double seconds_since_start = difftime(time(0), start);
printf("seconds since start: %2.60f\n", seconds_since_start);

私はprintf()60桁の精度で印刷していますが、すべての時間はまだ0.000000になっています...

時間関数にエラーはありますか? 私が時間を求めているタスクが 60 桁の精度で時間を考慮していないとは信じがたいです。

4

5 に答える 5

7

C++11 で利用可能な日付と時刻のユーティリティを使用できます。

#include <chrono>
#include <iostream>
#include <thread>

int main()
{
    auto start = std::chrono::high_resolution_clock::now();

    std::this_thread::sleep_for(std::chrono::seconds(5));

    auto end = std::chrono::high_resolution_clock::now();

    auto difference = std::chrono::duration_cast<std::chrono::seconds>(end - start).count();

    std::cout << "Seconds since start: " << difference;
}
于 2013-04-01T18:50:10.120 に答える