C语言操作界面菜单思考
2017-06-25 23:51
597 查看
C语言中,制作菜单操作界面是很常见的,一般都是通过scanf("%d",&i) 与switch(i)搭配来使用,这种方法很基础,我近来发现另外一种比较不错的方法,容错处理也有,可拓展性也高:
#define BUFFERSIZE 256 enum login_register_status {_f_main_, _login_id_, _login_passwd_, _udpport_, _register_name_, _register_passwd_}; static struct { enum login_register_status status; int buf_size; //从标准输入中获取的字节个数 int display; //根据需要,可以选择添加这个变量,控制显示设计 char *buf; //从标准输入获取的字节存放的位置,同buf_size一起使用 }f_menu; static void init_f_menu() //初始化菜单 { f_menu.status = _f_main_; f_menu.display = 1; f_menu.buf_size = BUFFERSIZE; //一次从标准输入获取的字节共个数 f_menu.buf = malloc(BUFFERSIZE); } //通过这个枚举形式,本质上主界面和子界面是同一等级 static void fun_f_menu() { if(_f_main_ == f_menu.status) printf("1.登录 2.注册 3.退出\n"); //主界面 else if(_login_id_ == f_menu.status) printf("请输入ID:\n"); //以下5个分级子界面,本质上和主界面同一等级 else if(_login_passwd_ == f_menu.status) printf("请输入密码:\n"); else if(_udpport_ == f_menu.status) printf("请输入监听的UDP端口\n"); else if(_register_name_ == f_menu.status) printf("请输入姓名:\n"); else if(_register_passwd_ == f_menu.status) printf("请输入密码:\n"); } static void do_f_menu() { int nret; scanf("%s", f_menu.buf); //主界面的操作选项,通过从buf中获取的不同的数值,设置不同的f_menu.status,进行不同的操作 if(f_menu.status == _f_main_) { int num; sscanf(f_menu.buf, "%d", &num); if(1 == num) f_menu.status = _login_id_; else if(2 == num) { f_menu.status = _register_name_; } else if(3 == num) { exit(1); } else { printf("输入错误\n"); f_menu.status = _f_main_; } } //根据不同status,来选择不同界面操作 else if(f_menu.status == _login_id_) { /* *** */ f_menu.status = *** //下一个界面 } else if(f_menu.status == _login_passwd_) { /* *** */ f_menu.status = *** //下一个界面 } else if(f_menu.status == _udpport_) { /* *** */ f_menu.status = *** //下一个界面 } else if(f_menu.status == _register_name_) { /* *** */ f_menu.status = *** //下一个界面 } else if(f_menu.status == _register_passwd_) { /* *** */ f_menu.status = *** //下一个界面 } }
相关文章推荐
- 打印菜单界面,用c语言实现二叉树的基本操作
- 打印菜单界面,用c语言实现二叉树的基本操作
- Wireshark 主界面的操作菜单
- Wireshark 主界面的操作菜单
- 嵌入式C语言之屏幕操作之菜单篇
- Wireshark 主界面的操作菜单
- c语言:编写一个简易计算器,打印菜单界面,实现加减乘除运算,可以退出菜单界面
- Wireshark 主界面的操作菜单
- c语言:编写一个简易计算器,打印菜单界面,实现加减乘除运算,可以退出菜单界面
- 用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换操作
- Android网络编程之一个Android下菜单系统模块的实现(主操作界面)
- Wireshark 主界面的操作菜单 中英文对照
- 信息发布类网站后台界面设计一点思考(列表和操作按钮)
- C语言操作OpenLDAP
- 用C语言操作LDAP服务器
- 水滴石穿C语言之C语言的底层操作
- 使用纯资源DLL文件实现多语言菜单、界面文字、Tooltips等
- 界面(1):对话框和菜单 打印和按钮等杂项
- 操作窗体系统菜单、按钮
- ACCESS VBE界面下菜单工具引用(References)和用CreateObject来创建对象的区别