首页 > 代码库 > ncurses库实现电子时钟

ncurses库实现电子时钟

1.创建graphics.c

2. 编辑graphics.c,编译:

gcc -o graphic graphic.c -L/usr/lib/i386-linux-gnu/ -lncurses

3.graphics.c的源码如下:

root@ubuntu:/mnt/shared/appbox/graphic# cat graphic.c
#include <curses.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

#include <ncurses.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>

int main()
{

    int x,y;    //得到当前标准窗口的行和列数
    time_t t;
    pthread_t thread;
    WINDOW *win;

    initscr();          //初始化标准窗口,必需滴
    curs_set(0);        //隐藏光标动态
    noecho();           //输入无回显
    getmaxyx(stdscr,y,x);       //得到标准窗口的行和列数
    win=newwin(5,40,y/2-5/2,x/2-40/2);  //在标准窗口的中央创建一个窗口
    
    refresh();          //刷新一下标准窗口,不然无法显示新建的窗口
    wrefresh(win);      //刷新一下新建的窗口
    getmaxyx(win,y,x);      //得到新建窗口的行数和列数
         
    while(1)  //无限循环
    {
        t=time(NULL);  //得到自某个时间到如今的所有秒数
        
        
        mvwprintw(win,y/2,x/10,"[");   //在新建的窗口中央输入日期和时间使用ctime函数进行转换
        mvwprintw(win,y/2,x/2-(strlen(ctime(&t))+1)/2,"%s",ctime(&t));   //在新建的窗口中央输入日期和时间使用ctime函数进行转换
        mvwprintw(win,y/2,4*x/5,"]");   //在新建的窗口中央输入日期和时间使用ctime函数进行转换
        wrefresh(win);           //刷新窗口,不然无法显示日期和时间
        sleep(1);                     //挂起一秒
    }


        endwin();

        return 0;
}
root@ubuntu:/mnt/shared/appbox/graphic# 

4. 输出如下:

[  Fri Dec 26 10:18:45 2014 ]


ncurses库实现电子时钟