寒假学习 第12天 (linux 高级编程) 笔记 总结
#include <curses.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
initscr();
box(stdscr,0,0);
start_color(); //初始化颜色
init_pair(1,COLOR_CYAN,COLOR_WHITE); //定义颜色对,init_pair()一定要放在start_color()后面
init_pair(2,COLOR_RED,COLOR_BLACK);
init_pair(3,COLOR_BLACK,COLOR_BLUE);
bkgd(COLOR_PAIR(3)); //设置背景色
mvaddch(2,10,ACS_PI|COLOR_PAIR(1));
mvaddch(4,10,‘A‘|COLOR_PAIR(2));
attron(COLOR_PAIR(1)); //想要加入下划线,粗体等 可以 COLOR_PAIR(1)|A_BOLD 等
mvaddstr(6,10,"Hello");
attroff(COLOR_PAIR(1)); //关闭属性 ,不一定要全部关闭,可以关闭你要的属性
attron(COLOR_PAIR(2));
mvprintw(8,10,"PID is %d\n",getpid());
mvprintw(9,10,"lines:%d cols:%d\n",LINES,COLS);
attroff(COLOR_PAIR(2));
getch();
endwin();
return 0;
}
#include <curses.h>
#include <time.h>
#include <unistd.h>
void init();
void drawui();
void business();
void destroy();
int main(int argc, const char *argv[])
{
init();
drawui();
business();
destroy();
return 0;
}
void init()
{
initscr();
start_color();
init_pair(1,COLOR_RED,COLOR_BLUE);
}
void destroy()
{
endwin();
}
void drawui()
{
box(stdscr,0,0);
bkgd(COLOR_PAIR(1));
}
void business()
{
time_t tt;
struct tm *t;
while(1)
{
tt = time(0); //获取时间
t = localtime(&tt);
mvprintw(LINES/2,COLS/2,"%03d/%02d/%02d %02d:%02d:%02d\n",
t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
refresh(); //刷新
sleep(1);//停一秒钟
}
}
#include <curses.h>
#include <unistd.h>
#include <string.h>
void init();
void drawLogin();
void destroy();
int main(int argc, const char *argv[])
{
init();
drawLogin();
destroy();
return 0;
}
void init()
{
initscr();
start_color();
init_pair(1,COLOR_BLACK,COLOR_BLUE);
init_pair(2,COLOR_RED,COLOR_BLUE);
}
void drawLogin()
{
box(stdscr,0,0);
bkgd(COLOR_PAIR(1));
char *heads="Login";
char *user="username [ ]";
char *pass="pass [ ]";
attron(A_BOLD|COLOR_PAIR(2));
mvaddstr(3,COLS/2,heads);
mvaddstr(6,(COLS-strlen(user))/2,user);
mvaddstr(8,(COLS-strlen(pass))/2,pass);
attroff(A_BOLD);
refresh();
}
void destroy()
{
getch();
endwin();
}
#include <curses.h>
int main(int argc, const char *argv[])
{
initscr();
int ch;
noecho();
while(1)
{
ch = mvgetch(5,10);
mvprintw(8,10,"you input is:%c",ch);
}
endwin();
return 0;
}
#include <curses.h>
int main(int argc, const char *argv[])
{
int ch;
int x,y;
initscr();
keypad(stdscr,TRUE);
noecho();
y = LINES/2;
x = COLS/2;
mvaddch(y,x,‘A‘);
while(1)
{
ch = getch();
mvaddch(y,x,‘ ‘);//等同于erase() ,也可用clear()
switch(ch)
{
case KEY_UP:
y--;
break;
case KEY_DOWN:
y++;
break;
case KEY_LEFT:
x--;
break;
case KEY_RIGHT:
x++;
break;
}
mvaddch(y,x,‘A‘);
refresh();
}
endwin();
return 0;
}
#include <curses.h>
int main(int argc, const char *argv[])
{
char name[9];
char pass[9];
memset(name,0,9);
initscr();
mvaddstr(4,10,"user:[ ]");
mvgetnstr(4,16,name,8);
mvprintw(7,10,"your input is:%s\n",name);
refresh();
getch();
endwin();
return 0;
}
#include <curses.h>
void init();
void drawUi();
void dealInput();
void destroy();
int main(int argc, const char *argv[])
{
init();
drawUi();
dealInput();
destroy();
return 0;
}
void init()
{
initscr();
}
void destroy()
{
endwin();
}
void drawUi()
{
mvaddstr(2,2,"[ ]+[ ]=[ ]");
refresh();
}
void dealInput()
{
int a,b;
while(1)
{
mvaddstr(2,2,"[ ]+[ ]");
mvscanw(2,3,"%d",&a);
mvscanw(2,11,"%d",&b);
mvprintw(2,19,"%d",a+b);
refresh();
}
}
int erase(void); 相当与上面例子2中用的清屏,拷贝一个空白字符进去int clear(void); 把整个清掉int clrtobot(void); 从当前位置删到最后一行
int clrtoeol(void);从当前位置删到行尾
#include <curses.h>
int main(int argc, const char *argv[])
{
WINDOW *w;
initscr();
box(stdscr,0,0);
w=derwin(stdscr,4,20,5,3);
box(w,0,0);
refresh();
wrefresh(w);
getch();
endwin();
return 0;
}
原文:http://blog.csdn.net/billvsme/article/details/18817437