微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法让我的函数计算经过了多少时间并相应地打印内容

如何解决我无法让我的函数计算经过了多少时间并相应地打印内容

{{1}}

我不想做蛇游戏。这将基于时间。例如,屏幕将每5秒左右更新一次。为此,我使用了chrono库。我不习惯这种尝试或学习的方法,因此我可能会错过一些显而易见的东西。但是问题是主函数没有进入if块。因此,它对控制台没有任何影响。

我尝试调试(逐行运行)。实际上这并不像正在运行的程序那样,因为时间间隔会变长,但是每次都阻塞时会进入。另外,如果我将if条件设置为2纳秒,那么它也可以工作,但是由于cout函数无法快速打印,因此我需要使其长得多。在调试时,我还意识到“ StartingTime”和“ EndingTime”变量不会被初始化(除非我直接停止它们)。有趣的部分是Ifı在if块之后添加cout,一会儿程序开始进入If块。

解决方法

操作时:

chrono::duration_cast<chrono::milliseconds>(EndingTime - StartingTime).count();

没有足够的时间过去,毫秒数总是返回0。这意味着您总是向ElapsedTime添加0,并且永远不会超过10。

一种解决方法是使用较小的分辨率:

chrono::duration_cast<chrono::nanoseconds>(EndingTime - StartingTime).count();

如您在问题中提到的,并适当调整if条件。

但是,最好的解决方法是将ElapsedTimefloat更改为chrono::duration(具有适当的单位),因为这是变量代表的单位。这样一来,您就不必再对持续时间执行.count()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。