当前位置:w88优德官网网文章中心服务器Linux服务器 → 一个基于串口终端的菜单显示函数

一个基于串口终端的菜单显示函数

减小字体 增大字体 作者:admin  来源:www.cuoxin.com  发布时间:2011-2-17 15:27:01
  // 函数会自动主力用户输入信息,并返回按键码给调用它的函数  /* menu显示函数 */  int menu(const char **menu, int start_row)  {  register int i;  static int flag = 1;  int item_count;  char *title;  int key_val;  int pointer = 0;  char item[100];  if (flag)  {  flag = 0;  pointer = 0;  }  /* 计算菜单项个数 */  item_count = 0;  while (1)  {  if (menu[item_count] != NULL)  {  item_count++;  }  else  {  break;  }  }  /* 清空屏幕 */  system("clear");  /* 进入 menu 循环 */  while (1)  {  /* 显示装饰头 */  printf("nn");  puts("\033[0;32;40m ╱◥██◣ ╭╭ ⌒╮ Have A Good Day! ^_^ ’↑’-’w’, ’↓’-’s’\033[0m");  puts("\033[0;32;40m︱田︱田田︱╰------------------------------------------------\033[0m");  /* 显示标题 */  for (i = 0; i < start_row; i++)  {  printf("n");  }  title = (char*)malloc(strlen(menu[0]) * sizeof(char) + 40 * sizeof(char));  if (title == NULL)  {  perror("malloc");  }  sprintf(title, "\033[0;31;44m%s\033[0m", menu[0]);  puts(title);  free(title);  /* 显示menu */  for (i = 1; i < item_count; i++)  {  if (i == pointer + 2)  {  char buff[200];  sprintf(buff, "\033[7;30;43m%s\033[0m", menu[i]);  puts(buff);  }  else  {  puts(menu[i]);  }  } // end for  /* 获取键盘信息,并处理 */  tcflush(0, TCIFLUSH); // 清空串口缓冲  key_val = getch();  switch (key_val)  {  case ’q’:  return -1;  case ’w’:  if (pointer > 0)  {  pointer--;  }  else  {  pointer = item_count - 4;  }  system("clear");  break;  case ’s’:  pointer++;  pointer %= (item_count - 3);  system("clear");  break;  case KEY_ENTER:  if (pointer == item_count -4)  {  pointer = -1;  }  return pointer;  default:  if (isdigit(key_val))  {  if ((key_val - ’0’ >= 0) && (key_val - ’0’ <= item_count - 5))  {  pointer = key_val - ’0’; // 字符 → 数值  return pointer;  }  }  /* 清空屏幕 */  system("clear");  pointer = 0;  printf("key_default! The key_val: %d", key_val);  } // end switch (key_val)  } // end while(1)  }

本文引用网址:
在下列搜索引擎中搜索“一个基于串口终端的菜单显示函数”的相关信息:
谷歌搜索 百度搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1中关村“艳照门” 前妻群发老公...
  • 2宫如敏不雅艳照曝光 宫如敏不雅...
  • 31月美网站访问量排名:谷歌居首...
  • 4苏紫紫形体艺术 苏紫紫全套照片...
  • 5中关村艳照门小三刁黎黎资料遭...
  • 1301永久重定向实现方式及302重...
  • 2如何搭建第一个网站?做网站有...
  • 3如何做SEO才能让百度喜欢?
  • 4什么是子优德w88官网?什么是顶级优德w88官网...
  • 5做好整站优化才是真正的网站优...
  • 1她的胸到底有多大
  • 2日本AV六级试卷 (附标准答案)
  • 3妓女怀孕!!怎么办???
  • 4第一次,痛吗?
  • 5女医生给我的四次体检
  • 1Linux进程IO状况的实时监测
  • 2shell经典实例分享
  • 3Linux为什么比Windows稳定
  • 4Linux中的系统服务——Daemon浅...
  • 5linux中如何修改指定用户的密码...