一秒钟计时器
One-Second Timer
我需要一个每秒做X的计时器。我做了这个,但是它不打印任何东西,直到程序终止,我发现这很奇怪。如果你选择3作为计数器,它会在3秒后打印所有内容,如果你选择3,它会在100秒后打印所有内容。
如何使它每秒打印,而不是在结束时一次打印?
int main()
{
using namespace std;
//Number to count down from
int counter = 10;
//When changed, a second has passed
int second = (unsigned)time(NULL);
//If not equal to each other, counter is printed
int second_timer = second;
while (counter > 0) {
second = (unsigned)time(NULL);
while (second != second_timer) {
//Do something
cout << counter-- << ", ";
//New value is assigned to match the current second
second_timer = second;
}
}
cout << "0" << endl;
return 0;
}
在要冲洗的位置添加<< flush
。例如,将打印输出更改为:
cout << counter-- << ", " << flush;
endl
导致缓冲区'刷新'并写入标准输出。您可以将<< endl;
添加到cout << counter--
中,使用cout.flush();
手动刷新cout流,或将<< flush;
附加到cout
表达式的末尾(感谢@Rob!)
关于更多信息,这个问题的答案似乎更详细。
相关文章:
- Linux的Cpp上的计时器
- 提升 ASIO 无法识别计时器对象
- 提升 asio 并发计时器取消问题与链
- 使用单体计时器的pthread_cond_timedwait有时会比预期晚超时
- 窗口中的微秒计时器
- 计时器是否从另一个线程启动?
- 如何在 c++ 中创建计时器
- C++回调计时器实现
- 在计时器或主线程外部的命令上销毁/替换线程
- 如何制作每秒从 30 乘 1 倒计时的计时器?
- 保留计时器集合(对象与指针)的最佳方法
- 在网络套接字计时器滴答后增加asio短读错误
- 是否可以仅使用标准 c++/c++11 实现不带"sleep"的计时器?
- 在不到一分钟的情况下,在一秒钟内显示计时器
- 如何在 c++ 中为我的游戏制作计时器,每 30 秒工作一次
- 在一段时间内进行计时器
- C++计时器(等待一段时间)
- 阿西奥:为什么计时器只执行一次
- 在C/C++中,每100毫秒重新启动一次计时器
- 一秒钟计时器