C++控制台倒计时
·
#include <iostream>
#include <chrono>
#include <thread>
#include <iomanip>
class CountdownTimer {
private:
int totalSeconds;
public:
CountdownTimer(int seconds) : totalSeconds(seconds) {}
void start() {
int remaining = totalSeconds;
while (remaining >= 0) {
// 清屏(适用于大多数终端)
std::cout << "\033[2J\033[1;1H";
// 计算小时、分钟和秒
int hours = remaining / 3600;
int minutes = (remaining % 3600) / 60;
int seconds = remaining % 60;
// 显示倒计时
std::cout << "倒计时开始!\n\n";
std::cout << "剩余时间: ";
if (hours > 0) {
std::cout << std::setfill('0') << std::setw(2) << hours << ":";
}
std::cout << std::setfill('0') << std::setw(2) << minutes << ":"
<< std::setfill('0') << std::setw(2) << seconds << std::endl;
if (remaining == 0) {
std::cout << "\n倒计时结束!\n";
break;
}
// 等待一秒
std::this_thread::sleep_for(std::chrono::seconds(1));
remaining--;
}
}
};
int main() {
int seconds;
std::cout << "请输入倒计时秒数: ";
std::cin >> seconds;
if (seconds <= 0) {
std::cout << "请输入一个正整数!\n";
return 1;
}
CountdownTimer timer(seconds);
timer.start();
return 0;
}
这个C++倒计时程序具有以下特点:
- 使用类封装倒计时逻辑,便于维护和扩展
- 支持任意秒数的倒计时
- 自动格式化显示(HH:MM:SS格式)
- 实时刷新控制台界面
- 在倒计时结束时显示提示信息
程序会在控制台上实时显示剩余时间,每秒更新一次。当倒计时结束时,会显示"倒计时结束!"的消息。支持多小时格式(如果输入超过3600秒)。
注意:此代码使用了std::this_thread::sleep_for来实现延迟,需要C++11或更高版本的编译器支持。在某些终端中,清屏序列\033[2J\033[1;1H可能不工作,但这不影响倒计时的核心功能。
更多推荐


所有评论(0)