国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一個簡單的編輯器雛形

2019-11-17 05:30:52
字體:
來源:轉載
供稿:網友

  注:本站文章

這里用到了屏幕開發庫 curses 和鍵盤函數 keypad.

下面來看源程序:

#include<curses.h>

#define STARTX 1
#define STARTY 1

void initial()
{
initscr(); /* 初始化 */
cbreak(); /* 用來開啟 cbreak 模式,cbreak 指除了DELETE,CTRL終端處理的非凡字符外,其余鍵盤輸入的字符將立即被讀取 */
nonl(); /* 格式控制 */
noecho();/* 并不立即顯示字符 */
intrflush(stdscr,FALSE); /* 不讀取串 */
keypad(stdscr,TRUE); /* 鍵盤響應 */
refresh(); /* 更新屏幕 */
}

int main()

{
int x=STARTX;
int y=STARTY;
int ch;

initial();

//box(stdscr,ACS_VLINE,ACS_HLINE);
/* 設置窗口形式 */
move(0,30);
/* 移動 0 行 30 列 */
refresh();

move(x,y);


do{
ch=getch();
switch(ch){
case KEY_UP: /* 獲取上鍵 */
if(y>1) --y;
move(y,x);
break;
case KEY_DOWN: /* 獲取下鍵 */
++y;
break;

case KEY_RIGHT: /* 獲取右鍵 */
++x;
break;
case KEY_LEFT: /* 獲取左鍵 */
if(x>1) --x;
break;
case '/r': /* 獲取回車鍵,并產生一個空行 */
++y;
x=1;
move(y,x);
insertln();
break;
case '/t': /* 獲取 Tab 鍵 */
x+=4;
break;
case KEY_BACKSPACE: /* 獲取刪除鍵,刪除字符 */
if(x>1) --x;
move(y,x);
addch(' ');
break;

case KEY_DC:
delch();
break;
case 126: /* 設置 ~ 鍵為退出鍵 */
endwin(); /* 結束 curses 模式 */
exit(0);
default:
insch(ch); /* 輸出字符 */
x++;
break;
}
move(y,x);
}while(1);
}
}

編譯程序:gcc -I/usr/include/ncurses edit.c -o edit -lncurses
程序可移動光標,輸入,刪除,增加代碼就可成為功能強大的編輯器了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天峨县| 东明县| 江北区| 尤溪县| 关岭| 通州区| 晴隆县| 永年县| 定南县| 成武县| 安乡县| 凤阳县| 陆良县| 治多县| 民勤县| 天津市| 交口县| 仪陇县| 青阳县| 恩施市| 岳池县| 莱芜市| 卢氏县| 延川县| 柞水县| 五河县| 万全县| 孟连| 奈曼旗| 嘉黎县| 全椒县| 依兰县| 太白县| 略阳县| 林芝县| 象州县| 哈尔滨市| 东阿县| 伊川县| 偏关县| 成都市|