我是靠谱客的博主 平常大地,这篇文章主要介绍模块化菜单,初学C++写的,现在分享给大家,希望可以做个参考。

模块化菜单,初学C++写的,写的不太好,以后要多多向大佬们学习学习!

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream> //Menu_s:菜单字符数组 number:菜单文字编号,从1开始 unsigned int menu(const char **Menu_s, unsigned int number); bool input_check(void); int main(void) { unsigned int ret; const char *Menu_s[] = { "查找", "排序", "添加", "删除", "帮助", }; ret = menu(Menu_s, sizeof(Menu_s)/sizeof(char*)); std::cout << "ret:" << ret; std::cout << " choose:" << Menu_s[ret-1] << std::endl; std::cout << "--------------" << std::endl; std::cout << "done!"; std::cin.get(); return 0; } unsigned int menu(const char **Menu_s, unsigned int number) { if(Menu_s == NULL || number == 0) { return 0; } unsigned int input; int i; std::cout << "-----menu-----" << std::endl; for(i = 0; i < number; ++i) { std::cout << "[" << i+1 << "] "; std::cout << Menu_s[i] << std::endl; } //输入数据 bool is_ok = false; std::cout << "--------------" << std::endl; std::cout << "Please enter the number:"; std::cin >> input; // 判断输入类型是否正确和输入的数字范围是否在菜单列表中,不在则输入错误重新输入 while( ((is_ok = input_check()) == false) || (input > number || input <= 0) ) { std::cout << "Input error please re-enter:"; std::cin >> input; } return input; } bool input_check(void) { if(std::cin.fail() == true) //fail是true,代表输入数据类型和cin传入变量的数据类型不一致 { std::cin.clear(); //此处用cin.clear()这个函1数进行流标志复位,使得cin.fail恢复正常 //读取缓冲区的剩余字符 while(std::cin.get() != 'n'); return false; } else { char tmp; //当输入类型正确时也去除缓冲区多余的数据 并处理第一个字符输入正确 其它字符输入错误的情况 tmp = std::cin.get(); if(tmp != 'n') { //说明输入了其它数据 while((std::cin.get()) != 'n'); return false; } } return true;

最后

以上就是平常大地最近收集整理的关于模块化菜单,初学C++写的的全部内容,更多相关模块化菜单,初学C++写内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部