
结果和图片基本一致就行,尽量在编译中补充注释,方便我理解。长度没有限制。
时间需要不断变化,并不是打印时间
有GUI稍显麻烦, 这是CSDN自己的chitgpt代码, 关键词: C语言实现的数字时钟代码 用fltk. 稍作修改.
*
没有倒计时功能, 只是一个简单的时钟显示程序
*
** 不是C语言, 是C++ **,
*
如果只能用C语言,估计比较费事.
#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Window.H>
#include <cstdio>
#include <cstdlib>
#include <ctime>
Fl_Window *window;
Fl_Box *clock_box;
Fl_Button *quit_button;
void update_time(void * /*unused*/)
{
// static int i = 0;
time_t t = time(nullptr);
struct tm *tm = localtime(&t);
static char time_str[32];
sprintf(time_str, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
clock_box->label(time_str);
// clock_box->labelfont(0 + i++);
Fl::repeat_timeout(1.0, update_time);
}
void quit_callback(Fl_Widget * /*unused*/, void * /*unused*/)
{
window->hide();
}
int main(int argc, char **argv)
{
window = new Fl_Window(200, 100, "Digital Clock");
clock_box = new Fl_Box(0, 0, 200, 50, "00:00:00");
Fl::set_fonts("-*");
clock_box->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE);
clock_box->labelsize(30);
clock_box->labelfont(16);
quit_button = new Fl_Button(70, 60, 60, 30, "Quit");
quit_button->callback(quit_callback);
window->end();
window->show(argc, argv);
Fl::add_timeout(1.0, update_time);
return Fl::run();
}
如果非要液晶效果, 需要液晶字体, 比如DS-Digital字体, 安装后找到其字体编码, 用 clock_box->labelfont(16);设置即可