国产探花免费观看_亚洲丰满少妇自慰呻吟_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
程序可移動光標,輸入,刪除,增加代碼就可成為功能強大的編輯器了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平陆县| 临高县| 齐齐哈尔市| 新建县| 清涧县| 象州县| 林州市| 玉林市| 淮安市| 富裕县| 阳城县| 湖州市| 肇州县| 民丰县| 岳池县| 海阳市| 泗洪县| 山东省| 额敏县| 高陵县| 凤城市| 绥棱县| 南康市| 丘北县| 新津县| 井研县| 化德县| 和硕县| 临夏市| 衡南县| 买车| 万山特区| 虎林市| 冷水江市| 绥江县| 邻水| 措勤县| 潮安县| 通辽市| 普陀区| 和硕县|