如何针对特定参数自动运行具有不同金额的c ++代码

时间:2014-02-07 06:33:01

标签: c++

我有一个c ++代码,我应该通过更改我拥有的两个参数(alpha和cost)的值来分别运行它的许多版本。

他们的版本如下:

for (int cost = 0; cost <= 100; cost+=5){
     for(float alpha = 0.5; alpha<=2.5; alpha+=0.1){

我不知道如何实现这一点,我为此搜索了很多,但更多的内容太复杂或不适合我。在此先感谢您的帮助。

我的代码结构很简单。我有两个函数,而不是main函数。我在Windows 7中使用Visual Studio 2012。

P.S。计算不是由我,我将我的程序的exe文件传递给集群计算机。总的来说,应该有400套不同的版本,我需要重复5次。


这是我最终找到并为我工作的内容:

int main(int argc, char const *argv[]){
  for (int cost = 0; cost <= 100; cost+=5){
    for(float alpha = 0.5; alpha<=2.5; alpha+=0.1){     
    string s1 = to_string(cost);
    char const *pchar1 = s1.c_str();
    argv[1] = pchar1;       
    string s2 = to_string(alpha);
    char const *pchar2 = s2.c_str();
    argv[2] = pchar2;
 . . .

1 个答案:

答案 0 :(得分:1)

我不确定我到底想要什么,但以下内容可能有所帮助:

  • 您必须多次致电my_f(int argc, const char*argv[])

    int main(int argc, char *argv[]){
        for (int cost = 0; cost <= 100; cost += 5) {
            for (float alpha = 0.5f; alpha <= 2.5f; alpha += 0.1f) {    
                const int myargc = 2;
                const std::string scost = std::to_string(cost);
                const std::string salpha = std::to_string(alpha);
                const char* myargv[] = { scost.c_str(), salpha.c_str() };
    
                my_f(myargc, myargv);
            }
        }
        return 0;
    }
    
  • 您必须启动my_a.exe cost alpha

我建议使用shell脚本多次使用不同的参数启动应用程序。

在C ++中,您必须使用fork / exec ...