关键词搜索

源码搜索 ×
×

利用STL中的map来写一个自己的命令行界面

发布2014-03-22浏览8108次

详情内容

       居然没有用过命令行?那你怎么会关注这篇文章呢?我晕。


      你看,司机师傅安按个按钮,门就开了,按那个按钮, 就唱歌。 按钮实际对应一个命令,真正解析并执行这个命令的,是里面的函数。在windows的cmd中,输入一个命令,就可以执行对应的功能,那个黑色的界面会把人的想法传给系统,系统来处理。下面,我们利用STL中的map来模拟简单的命令行,主要是了解map的功能和用法。在实战中,map的应用相当广泛。当然,在面试的时候,你也可以吹一下,自己用过map.

  1. #pragma warning(disable : 4786)
  2. #include <iostream>
  3. #include <string>
  4. #include <map>
  5. using namespace std;
  6. typedef void (*cmdFun)();
  7. typedef map<string, cmdFun> strMapFunc;
  8. typedef map<string, cmdFun> :: iterator It;
  9. strMapFunc g_map;
  10. void dirFunc()
  11. {
  12. cout << "List all files and folders." << endl;
  13. }
  14. void cdFunc()
  15. {
  16. cout << "Change to specified directory." << endl;
  17. }
  18. void mkdirFunc()
  19. {
  20. cout << "Make a new directory." << endl;
  21. }
  22. void initialize()
  23. {
  24. g_map.insert(make_pair(string("dir"), &dirFunc));
  25. g_map.insert(make_pair(string("cd"), &cdFunc));
  26. g_map.insert(make_pair(string("mkdir"), &mkdirFunc));
  27. }
  28. int main()
  29. {
  30. initialize(); // 千万别忘记初始化
  31. char cmd[100];
  32. while(1)
  33. {
  34. gets(cmd);
  35. It it = g_map.find(string(cmd));
  36. if(g_map.end() != it)
  37. {
  38. cmdFun fun = it->second;
  39. fun();
  40. }
  41. else
  42. {
  43. cout << "Not support." << endl;
  44. }
  45. }
  46. return 0;
  47. }


相关技术文章

最新源码

下载排行榜

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载