使用curses庫進行tab 移動代碼

 
#include <stdio.h>
#include   "curses.h"
WINDOW *curscr, *stdscr;

int main()
{
 char con[10];
 char c;
 int   flag=1;
 int  i=0,j=0;
 stdscr = initscr();
 //mvprintw(i,j,"LINES:%d,COLS:%d/n",LINES,COLS); i++;
 mvprintw(i,0,"AAAA1     =[          ]"); mvprintw(i,23,"BBBB1     =[          ]"); i++;
 mvprintw(i,0,"AAAA2     =[          ]"); mvprintw(i,23,"BBBB2     =[          ]"); i++;
 mvprintw(i,0,"AAAA3     =[          ]"); mvprintw(i,23,"BBBB3     =[          ]"); i++;
 mvprintw(i,0,"AAAA4     =[          ]"); mvprintw(i,23,"BBBB4     =[          ]"); i++;
 mvprintw(i,0,"AAAA5     =[          ]"); mvprintw(i,23,"BBBB5     =[          ]"); i++;
 mvprintw(i,0,"AAAA6     =[          ]"); mvprintw(i,23,"BBBB6     =[          ]"); i++;
 mvprintw(i,0,"AAAA7     =[          ]"); mvprintw(i,23,"BBBB7     =[          ]"); i++;
 mvprintw(i,0,"AAAA8     =[          ]"); mvprintw(i,23,"BBBB8     =[          ]"); i++;
 mvprintw(i,0,"AAAA9     =[          ]"); mvprintw(i,23,"BBBB9     =[          ]");   i++;

 int x,y;
 getyx(stdscr,x,y);
 mvprintw(10,0,"x:%d,y:%d/n",x,y);
 i = 0;
 j=12;
 mvprintw(i,j,"");

 refresh();

 int len = 0;
 while(flag)
 {
  c = getchar();
  mvprintw(11,1,"%x",c);
  //printf("%d",con[0]);

  switch(c)
  {
   case 0x09: /*TAB*/
    if(j == 12)
    {
     j = 35;
    }
    else
    {
     j = 12;
     i = i + 1;
     if(i == 9) i = 0;
    }
    move(i,j);
    getyx(stdscr,x,y);
    mvprintw(10,0,"x:%d,y:%d/n",x,y);
    mvprintw(i,j,"");
    len = 0;
    break;
   case 0x1b: /*ESC*/
    flag = 0;
    break;
   default:
    if((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    {
     len = len + 1;
     if(len > 10) len = 10;
     con[len] = c;
     mvprintw(i,j+len-1,"%c",c);
    }
    break;
  }
  refresh();

 }
 refresh();
 endwin();

 return 0;
}

cc -g -o move move.c -l curses

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章