📄 inputstr.c
字号:
inputstr(WINDOW *win,int y,int x,char *str)
{
int ch;
char tmpstr[40];
int count=0;
memset(tmpstr,'\0',40);
cbreak();
nonl();
noecho();
intrflush(win,0);
wmove(win,y,x);/* 移至输入位置 */
do {/* 等待输入 */
ch=getch();
switch(ch) {/* 判断 */
case KEY_UP:/* 判断是否"↑"键被按下 */
case KEY_DOWN: /* 判断是否"↓"键被按下 */
case KEY_RIGHT: /* 判断是否"→"键被按下*/
case KEY_LEFT: /* 判断是否"←"键被按下 */
break;/*屏蔽方向键*/
case '\r': /* 判断是否 ENTER 键被按下 */
case '\t': /* 判断是否 TAB 键被按下 */
flag = 0;
break;
case 127: /* 判断是否 BACKSPACE 键被按下 */
if(count<=0)
{
beep();
break;
}
else
{
mvaddch(y,--x,' ');/* delete 一个字符 */
tmpstr[--count] == '\0';
break;
}
case 27: /* 判断是否[ESC]键被按下 */
flag = 0;
memset(tmpstr,'\0',40);/*ESC取消所有输入*/
break;
default:
addch(ch); /* 如果不是特殊字符, 印出*/
tmpstr[count] = ch;
count++;
x++;
break;
}
wmove(win,y,x); /* 移动光标至现在位置 */
} while (flag==1);
tmpstr[count+1]='\0';
memcpy(str,tmpstr,strlen(tmpstr));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -