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

📄 input.c

📁 curses界面编程
💻 C
字号:
#include <curses.h>/* 引进 curses.h , 并自动引进 stdio.h */

#define StartX  1/* 决定游标初始位置 */
#define StartY  1

void initial();

main()
{
int x=StartX;/* 宣告 x,y 并设定其初值 */
int y=StartY;
int ch;/* 宣告 ch 为整数,配合 getch() 使用   */
initial();/* 呼叫 initial(), 启动 curses 模式*/
 /* 并完成其它设定 */
box(stdscr,'|','-');/* 画方框  */
attron(A_REVERSE);/* 开启反白模式 */
mvaddstr(0,20,"Curses Program");  /* 在 (20,0) 处输出反白字元 */
attroff(A_REVERSE);/* 关闭反白模式 */
move(x,y);/* 将游标移至初始位置 */
do {/* 以无限回圈不断等待输入 */
	ch=getch();/* 等待自键盘输入字元*/
	switch(ch) {/* 判断输入字元为何 */
	case KEY_UP: --y;/* 判断是否"↑"键被按下 */
		break;
	case KEY_DOWN: ++y;           /* 判断是否"↓"键被按下 */
		break;
	case KEY_RIGHT: ++x;          /* 判断是否"→"键被按下*/
		break;
	case KEY_LEFT: --x;           /* 判断是否"←"键被按下 */
		break;
	case '\r':                    /* 判断是否 ENTER 键被按下 */
		++y;
		x=0;
		break;
	case '\t':                    /* 判断是否 TAB 键被按下 */

		x+=7;
		break;
	case 127:                     /* 判断是否 BACKSPACE 键被按下 */
		mvaddch(y,--x,' ');/* delete 一个字元 */
		break;
	case 27: endwin();            /* 判断是否[ESC]键被按下 */
		exit(1);             /* 结束 curses 模式 */
                                      /* 结束此程式*/
	default:
		addch(ch);           /* 如果不是特殊字元, 将此字元印出*/
		x++;
		break;
	}
	move(y,x);                      /* 移动游标至现在位置 */
  } while (1);
 }

void initial()                       /* 自定开启 curses 函式 */
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -