📅  最后修改于: 2023-12-03 14:49:20.302000             🧑  作者: Mango
数字时钟是一种可以显示当前时间的设备。在C++中,我们可以使用用户设置的时间来创建一个数字时钟程序。本文将介绍如何使用C++编写一个从用户输入设置时间开始的数字时钟程序。
该程序将提供以下功能:
要实现以上功能,我们将按照以下步骤进行:
cin
命令提示用户输入小时、分钟和秒钟,并将这些值存储在变量中。以下是一个使用C++编写的从用户输入设置时间开始的数字时钟程序的示例:
#include <iostream>
#include <ctime>
#include <chrono>
#include <thread>
using namespace std;
using namespace chrono;
// 获取当前时间
void getCurrentTime(int& hour, int& minute, int& second) {
time_t currentTime = time(nullptr);
tm* localTime = localtime(¤tTime);
hour = localTime->tm_hour;
minute = localTime->tm_min;
second = localTime->tm_sec;
}
// 检查时间是否与用户输入的时间相等
bool isTimeEqualToUserInput(int hour, int minute, int second, int userInputHour, int userInputMinute, int userInputSecond) {
return hour == userInputHour && minute == userInputMinute && second == userInputSecond;
}
int main() {
int userInputHour, userInputMinute, userInputSecond;
// 提示用户输入时间
cout << "请输入小时:";
cin >> userInputHour;
cout << "请输入分钟:";
cin >> userInputMinute;
cout << "请输入秒钟:";
cin >> userInputSecond;
// 每秒钟更新一次时钟显示
while (true) {
int hour, minute, second;
getCurrentTime(hour, minute, second);
cout << "当前时间:" << hour << ":" << minute << ":" << second << endl;
// 检查当前时间是否与用户输入的时间相等
if (isTimeEqualToUserInput(hour, minute, second, userInputHour, userInputMinute, userInputSecond)) {
cout << "时间到!" << endl;
break;
}
// 程序每秒钟休眠一次
this_thread::sleep_for(seconds(1));
}
return 0;
}
输入用户设置的时间,然后程序将开始运行直到到达用户输入的时间。
命令行输出示例:
请输入小时:12
请输入分钟:30
请输入秒钟:0
当前时间:15:45:30
当前时间:15:45:31
当前时间:15:45:32
...
当前时间:12:30:0
时间到!
在以上示例中,用户设置的时间是12:30:00,程序将每秒钟更新一次当前时间的显示,直到显示的时间与用户设置的时间相等时,发出提醒"时间到!"。