【发布时间】:2020-04-08 17:21:22
【问题描述】:
我的代码中有一个 if 语句,它应该检测我的 chrono::duration 是否超过一分钟的运行时间。当 if 语句变为真时,它应该打印“Tick!” 仅一次,但我的程序会打印“Tick!”每次 delta__time 超过一分钟,即使我从中减去 60 秒。您可能需要查看照片才能更好地了解问题。我仍在努力解释事情,这只是我在网站上的第二篇文章。如何让我的代码每分钟只打印一次刻度?非常感谢。
int main()
{
// Create Screen Buffer
wchar_t* screen = new wchar_t[nScreenWidth * nScreenHeight];
HANDLE hConsole = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
//SetConsoleActiveScreenBuffer(hConsole);
DWORD dwBytesWritten = 0;
wstring numberSystem[10] = {
};
while (1)
{
tp2 = chrono::system_clock::now();
chrono::duration<long double, ratio<60>> delta__time = tp2 - tp1;
if (delta__time >= 60s)
{
delta__time -= 60s;
cout << "Tick!\t" << delta__time.count() << endl;
}
else {
cout << delta__time.count() << endl;
}
// Handle change in time here.
}
return 0;
}
【问题讨论】: