打印以记录计时的持续时间

时间:2017-08-22 08:30:13

标签: c++11 chrono

我试图打印到文件的微秒量:

high_resolution_clock::time_point t1 = high_resolution_clock::now();
high_resolution_clock::time_point t2 = high_resolution_clock::now();
auto duration1 = duration_cast<microseconds> (t2-t1).count();

fprintf(file, "%lu, %lu\n", dutation1, duration1);

在文件中,我可以看到第一列的值大约为2000但是 我得到第二列值总是等于零。我想知道我是否正确fprintf%lu参数),为什么它会在文件中将第二个变量打印为零?

1 个答案:

答案 0 :(得分:3)

count函数返回一个名为rep的类型,根据this std::duration reference

  

表示刻度数

的算术类型

由于您不知道确切的类型,因此您无法真正使用任何printf函数来打印值,因为如果使用错误的格式,您将有未定义的行为 (这很有可能是你在这里)。

如果您使用C ++流,这将很容易解决,因为将自动选择正确的“输出”运算符<<来处理该类型。