目前我有一个程序,我通过命令行将一些参数和文件传递给主可执行文件
e.g。我通过
运行模拟./ exe param1 param2 param3 .. etc
然而,为了使这个代码更加用户友好,我想有一个系统,你可以加载参数文件,并在它们上运行模拟,这似乎与科学代码相同
现在我想转到一个我可以运行类似
的系统./ exe simulation.params
我想创建一个包含所有参数的类
class Parameter {
//objects that are parameters
}
然后在我的主程序中传递它,类似于从文件中的变量到模拟中的变量的映射。主程序只是循环输入文件中的每一行,读取信息并初始化该类。
也可以在交互式shell中运行程序或只是传递文件。也许只是检查一个文件(带有一些必要的检查)然后运行,或者只是启动一个交互式会话,
粗略
int main()
{
if(argc== 1)
{
// run simulation on file
}
else
{
//bring up some menu
}
}
这些好习惯吗?大多数参数都是数字,是否有推荐的格式?还有其他有用的库可以帮助实现这样的事情吗?用python创建前端会更好吗?
答案 0 :(得分:0)
我建议您引入参数名称,其中一个可能是带有设置的文件名。如果你不坚持只基于文件或基于arg的设置,但是允许命令行参数覆盖文件设置会更好。基本上你初始化看起来像这样:
有一个很好的函数getopt,在POSIX标准中定义(这意味着 - 在标准库中可用)。 GNU提供了名为getopt_long的扩展,它允许你同时拥有" long"选项如" - param"。有关getopt / getopt_long的更多信息,请参见示例here