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语言函数库详细的用法?
[解决办法]
仅供参考
#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);}