我想实时获取当地时间。代码和结果如下,显示奇怪;
int main() {
while (true) {
char sentdata[64] = { 0 };
GetLocalTime(&sys);
sprintf(sentdata, "A,%02d:%02d:%02d.%03d,B\n", sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);
cout << sentdata << endl;
}
return 0;
}
我在其他PC上尝试了相同的代码,结果显示如下,它可以显示每毫秒。
为什么某些循环中的tmie相同?我认为每个循环的时间应该不同。
答案 0 :(得分:5)
这是Windows系统上的典型计时行为,即使使用高分辨率时钟:时间仅会增加约16毫秒的跳跃。
要在Windows上准确计时,请参阅this answer
答案 1 :(得分:1)
您的代码以纳秒为单位运行,而输出则以毫秒为单位。