如何摆脱(在c ++中)恼人的菜单,如:
(a)做点什么 (b)做点别的事 (c)做第三件事 (x)退出
基本上我希望能够运行程序,然后执行类似“calc 32/5”或“open data.csv”的操作,显然我会编写“calc”和“open”的代码。只是朝着正确的方向推进将是伟大的,我相信我可以把它弄清楚,我只需要一些东西来google-fu。
答案 0 :(得分:3)
我想你想做这样的事情:
string cmd;
cout << "Enter your command:" << endl;
cin >> cmd;
if(cmd == "open") {
// read file name and open file
} else if (cmd == "calc") {
// read and evaluate expression
} ...
虽然取决于您希望命令语言的复杂程度,但更精细的设计(甚至可能使用解析器生成器)可能是合适的。
答案 1 :(得分:2)
您想要的是命令行解析器。我不记得这个名字,但实际上有一个设计模式。但是,this site为您提供了一些可用于编写代码的示例代码。希望这不会给你太多答案:)
答案 2 :(得分:2)
你应该选择The C++ Programming Language,这是 关于C ++的书(还有其他的,但这个很棒)。它有一个示例程序,分布在几个章节中,用于标记化,解析参数和制作计算器。
答案 3 :(得分:0)
不要寻找像a,b等输入,而只是要求通用输入。在空格处拆分输入,在第一个上进行“切换”以匹配函数调用,将其余部分视为参数。
答案 4 :(得分:0)
您的菜单是否基于对getchar()
的调用?如果要在处理之前允许输入整行,可以使用fgets()
或在C ++中std::getline
。
答案 5 :(得分:0)
有些人会通过在C ++中添加Python接口来将他们的C ++类定义打包为Python类。
然后他们使用内置的cmd
库在Python中编写顶级解释器。
答案 6 :(得分:0)
看看: