拜951 2023-05-29 16:27 采纳率: 0%
浏览 180
已结题

用c语言编写数字时钟

img

结果和图片基本一致就行,尽量在编译中补充注释,方便我理解。长度没有限制。
时间需要不断变化,并不是打印时间

  • 写回答

11条回答 默认 最新

  • 关注
    获得1.20元问题酬金

    有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);设置即可

    评论

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 修改了问题 5月29日
  • 创建了问题 5月29日