我试图确定自上次检查以来控制台应用程序中是否已经过了五秒钟。我认为我的逻辑略有偏差,我不知道如何解决它。
程序开始时,我的lastCheck
变量首先为0。它负责举办#34;旧时代"。
LastCheck
由CheckSeconds()
更新,为其提供了一个新的"旧时代"
如果LastCheck
等于1232323,now
变量当前等于1227323,那么我知道已经过了5000毫秒。 (实际上,数字远大于此数值)
否则,我不想发生任何事情,我想等到这五秒钟真的过去了。
BACKEND
inline std::vector<int> CheckSeconds(int previous, int timeinseconds)
{
//check if a certain amount of seconds have passed.
int now = GetTickCount();
int timepassed = 0;
std::vector<int> trueandnewtime;
//if the current time minus the old time is greater than 5000, then that means more than 5000 milliseoncds passed.
//therefore the timepassed is true.
if (now - previous > 5000)
timepassed = 1;
trueandnewtime.push_back(timepassed);
trueandnewtime.push_back(now);
return trueandnewtime;
}
FRONTEND
storage = CheckSeconds(LastCheck, 5);
LastCheck = storage.at(1);
if (storage.at(0) == 1)
{
....blahblahblah.....
}
任何人都知道我做错了什么?我必须在某个地方出现逻辑错误,否则我会变得愚蠢。
另外值得注意的是,这段代码处于while循环中,不断运行Sleep(60);
它是momemnt的控制台应用程序。
感谢任何帮助。
答案 0 :(得分:0)
通过将Lastcheck设置为循环来修复它。