读书人

C语言写类VI编辑器解决方法

发布时间: 2012-04-18 15:01:59 作者: rapoo

C语言写类VI编辑器
最近用C写了一个文本编辑器,想实现vi编辑器那行的功能,输入ESC的时候能够退出,
我的思路:
while(1)
{
wri = getche();
if( wri == 27 ) //按ESC退出 27为退出的ACS码
break;
//putc(wri, stdout); 使用getche() 就可以不用这条语句了...
if( wri != 27 && ab.size < ab.maxsize)
{

ab.text1[ab.size] = wri;
ab.size++;
}
可是这个程序有些问题,getche不能及时回显我输入的字符,而且不能解决退格键对字符的删除?
请问C里面还有什么更好的函数结局吗?
还有那里能学习C语言函数库详细的用法?

[解决办法]
仅供参考

C/C++ code
#include <conio.h>#include <stdio.h>char pw[40];int i,ch;FILE *f;void main() {    cprintf("\r\nPassword:");    i=0;pw[i]=0;    while (1) {        ch=getch();        if (ch==13 || i>=39) break;        switch (ch) {        case 27:            cprintf("\rPassword: %40s"," ");            cprintf("\rPassword: ");            i=0;pw[i]=0;            break;        case 8:            if (i>0) {                i--;                pw[i]=0;                cprintf("\b \b");            }            break;        default:            pw[i]=ch;            i++;            pw[i]=0;            cprintf("*");            break;        }    }    cprintf("\r\n");    f=fopen("password.txt","w");    fprintf(f,"%s\n",pw);    fclose(f);} 

读书人网 >C语言

热点推荐