C++ 如何在OMNET++;?

C++ 如何在OMNET++;?,c++,omnet++,C++,Omnet++,通常,OMNeT++输出文件名是workloadType-#r.sca,或workloadType-#r.vec。我们希望使用不同的命令行参数运行不同的模拟,以找到最佳模拟参数。因此,我们希望通过命令行参数使输出文件名更易于区分 例如: 如果我有-arg1 8-arg2 12,我们希望有工作负载类型-#r-8-12.sca。因此,我们知道哪个文件来自哪个模拟。当然,我们可以一次运行每一个来手动标记它们。但这是太多的工作。如果我们可以在OMNeT++中指定输出文件名,那么我们就可以自动化这个过程并

通常,OMNeT++输出文件名是
workloadType-#r.sca
,或
workloadType-#r.vec
。我们希望使用不同的命令行参数运行不同的模拟,以找到最佳模拟参数。因此,我们希望通过命令行参数使输出文件名更易于区分

例如:

如果我有
-arg1 8-arg2 12
,我们希望有
工作负载类型-#r-8-12.sca
。因此,我们知道哪个文件来自哪个模拟。当然,我们可以一次运行每一个来手动标记它们。但这是太多的工作。如果我们可以在OMNeT++中指定输出文件名,那么我们就可以自动化这个过程并同时运行许多模拟。提前谢谢

您可以使用
输出标量文件
输出向量文件
配置选项(从命令行,即
--输出标量文件
或INI文件)。默认情况下,它的值是
${resultdir}/${configname}-${iterationvarsf}#${repeation}.sca
,因此通常如果您有不同的迭代变量值,您将获得不同的文件名

有关详细信息,请参阅手册:

我不确定什么才是真正的arg1,但我的感觉是,你正在做的事情应该有所不同。模拟结果应该仅取决于配置名称和迭代变量值(以及初始种子),并且所有这些变量都已经是文件名的一部分


或者从另一个角度:如果您的模拟结果依赖于命令行参数,而不是
-r
-c
,那么您可能做错了。

我的感觉是,您只需在INI文件中正确配置
迭代变量
,其余的将由OMNeT++正确处理。如果您只想运行特定的变量组合,可以使用-r(运行过滤器)选项指定。在某些情况下,这种方法可能是合法的,例如,迭代变量的实际值来自外部源,并且事先未知。