我试图打印到文件的微秒量:
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
参数),为什么它会在文件中将第二个变量打印为零?
答案 0 :(得分:3)
count
函数返回一个名为rep
的类型,根据this std::duration
reference
表示刻度数
的算术类型
由于您不知道确切的类型,因此您无法真正使用任何printf
函数来打印值,因为如果使用错误的格式,您将有未定义的行为 (这很有可能是你在这里)。
如果您使用C ++流,这将很容易解决,因为将自动选择正确的“输出”运算符<<
来处理该类型。