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

来源:互联网 发布:淘宝清仓报名要求 编辑:程序博客网 时间:2024/03/29 14:35

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


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

#pragma warning(disable : 4786) #include <iostream>#include <string>#include <map>using namespace std;typedef void (*cmdFun)();typedef map<string, cmdFun> strMapFunc;typedef map<string, cmdFun> :: iterator It;strMapFunc g_map;void dirFunc(){cout << "List all files and folders." << endl;}void cdFunc(){cout << "Change to specified directory." << endl;}void mkdirFunc(){cout << "Make a new directory." << endl;}void initialize(){g_map.insert(make_pair(string("dir"), &dirFunc));g_map.insert(make_pair(string("cd"), &cdFunc));g_map.insert(make_pair(string("mkdir"), &mkdirFunc));}int main(){initialize(); // 千万别忘记初始化char cmd[100];while(1){gets(cmd);It it = g_map.find(string(cmd));if(g_map.end() != it){cmdFun fun = it->second;fun();}else{cout << "Not support." << endl;}}return 0;}


0 0
原创粉丝点击