C++实现一个简单的计时器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现一个简单的计时器相关的知识,希望对你有一定的参考价值。
上次给别人写的,只写分钟和秒数,没弄到毫秒去!我把代码给你吧,希望对你有帮助,文件类容都有注释的。
敲入回车键开始计时。
#include<iostream>
#include<iomanip>
#include<windows.h>
using namespace std;
int main()
int second=0,minute=0;
if(getchar()=='\n') //执行的入口 “回车键 ” 开始读表
while(1) //一直循环下去
if(59==second) //秒数到了59 变向分钟进位1 并且second重置为0
minute+=1;
second=0;
system("cls"); //清理屏幕 需要<windows.h>
//下面是C++的输出格式控制 在<iomanip.h>中
cout<<right<<setfill('0')<<setw(2)<<minute
<<':'
<<right<<setw(2)<<second<<setfill('0');
Sleep(1000);//1s刚好是最后个数字跳一次的时间
second++; //秒数累加
return 0;
参考技术A #include<stdio.h>
#include<windows.h>
void main()
int counter = 0;
for (int i = 0; i < 20; i++)
printf("%d\n", counter);
Sleep(1000);
counter ++;
追问
我是想实现一个计时器类。。。。
C++ 简单的计时器/刻度函数
【中文标题】C++ 简单的计时器/刻度函数【英文标题】:C++ simple timer/tick function 【发布时间】:2014-07-26 22:33:02 【问题描述】:正如标题所说,我想创建一个简单的计时器/滴答功能,例如 5 分钟,这样我就可以调用另一个功能,然后计时器再次启动,依此类推,但不使用睡眠或时钟功能。那么是否有任何功能或方法可以例如以秒为单位计数?感谢您的帮助。
【问题讨论】:
sleep
有什么问题?这是你真正想做的事情,还是编码难题?
“不使用睡眠或时钟功能”:如果没有时钟,您将如何测量 5 分钟? std::thread
+ std::chrono
这里应该够用了。
我试过睡眠,但它完全暂停了程序,这不好也尝试了倒计时 int 但我想要一些“实时”的东西,因为你知道每个系统计数更快或更慢,我还尝试了一些具有时钟功能的东西,它运行良好,但我不知道我觉得它不是很“清晰”的编码它应该适用于 windows
所以你说时钟功能没问题?
如果使用正确,是的:在您的问题中显示您的计时器代码(带有时钟)以获得准确的答案。
【参考方案1】:
虽然您说要避免“时钟功能”,但我不明白如何在没有时钟的情况下计算 5 分钟。这是一个非常基本但便携的计时器。
std::thread
用于创建线程
std::chrono
用作时钟
结果:foo()
方法每 5 分钟调用一次。
#include <thread>
#include <iostream>
void foo()
std::cout << "Hello !\n";
int main()
std::thread([&]
while(true)
// Wait 5 minutes
std::this_thread::sleep_for(std::chrono::minutes(5));
// Call our method
foo();
).detach();
// Execution continues ...
std::cin.get();
注意事项:
我将 lambda 传递给线程,但任何可调用对象都可以。std::chrono
有很多很酷的东西来控制日期和时间,你可以很容易地用它来调整你的计时器。
【讨论】:
以上是关于C++实现一个简单的计时器的主要内容,如果未能解决你的问题,请参考以下文章