确定是否已经过了5秒

时间:2015-11-23 04:10:41

标签: c++

我试图确定自上次检查以来控制台应用程序中是否已经过了五秒钟。我认为我的逻辑略有偏差,我不知道如何解决它。

程序开始时,我的lastCheck变量首先为0。它负责举办#34;旧时代"。

LastCheckCheckSeconds()更新,为其提供了一个新的"旧时代"

如果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的控制台应用程序。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

通过将Lastcheck设置为循环来修复它。