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

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

編輯器的改進

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

  注:續網友 hua 之后,網友 linuxhero 在討論區發布了他改進 hua 編寫的編輯器程序,并消除了文件存儲的亂碼問題,本站測試了這個程序,效果不錯,希望兩位網友再接再勵不斷地把這個編輯器完善起來,同時也謝謝兩位網友對非常空間的支持!

-----------------------------------------------------------

作者:linuxhero

我的方法是對數組逐個附值,而不是采用串連接,消除了文件存儲亂碼的問題,同時還改進了刪除的功能,下面是修改后的源代碼:

#include<unistd.h>
#include<stdio.h>
#include<curses.h>

#define STARTX 1
#define STARTY 1

void initial()
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}

int main(int argc,char *argv[])

{
int x=STARTX;
int y=STARTY;
int ch,i,net[2000],sizefile=0;
/* net[2000] 中的2000為文件最大行數 */
char name[200000]; /* 設置文件最大容量 */
FILE *fp;

if(argc==1 argc>2) {
}

if(argc==2) {
fp=fopen(argv[1],"w");
initial();

//box(stdscr,ACS_VLINE,ACS_HLINE);
move(0,30);
printw("edit:%s",argv[1]);
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':
x+=4;
break;

case KEY_BACKSPACE:
if(x>1) --x;
move(y,x);
/* 刪除的控制 */
if (x>1) {
delch();
} else {
addch(' ');
}
break;

case KEY_DC:
delch();
break;

case 27:
fwrite(&name,sizeof(name),1,fp);
endwin();
/* 顯示數組存儲的內容 */
printf("this is name:%s//n",name);
exit(0);

default:
insch(ch);
/* 將輸入的字存入數組 */
if (y==1) {
name[x-1]=ch;
name[x]='//0';
} else {
for(i=1;i<y;i++) {
sizefile=net[i]+sizefile;
}
name[sizefile+x-1]=ch;
name[sizefile+x]='//0';
sizefile=0;

}
net[y]=x;
x++;
break;
}
move(y,x);
}while(1);
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漯河市| 文化| 容城县| 布拖县| 朝阳区| 定安县| 连江县| 霍林郭勒市| 容城县| 安庆市| 禹城市| 师宗县| 克拉玛依市| 灵寿县| 寻甸| 大渡口区| 朝阳市| 丰都县| 普安县| 建昌县| 含山县| 怀来县| 龙岩市| 彭山县| 五寨县| 织金县| 陇川县| 曲水县| 霍林郭勒市| 筠连县| 神木县| 抚宁县| 湄潭县| 嘉荫县| 乌审旗| 夹江县| 张家口市| 温宿县| 馆陶县| 溧阳市| 盐津县|