⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputstr.c

📁 curses界面编程
💻 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 + -