【问题标题】:how to pass max_streak_length from command line如何从命令行传递 max_streak_length
【发布时间】:2013-10-08 12:49:02
【问题描述】:

我正在使用 MPI 创建 C++ 控制台应用程序,我的问题是我有 max_streak_length var 是硬代码,我需要从命令行传递它。我的命令行mpiexec -n 3 main.exe 6 其中 6 是我的 max_streak_length。有人可以帮我吗?

int main(int argc, char* argv[])
{
    //init size of max win streak
    int max_streak_length  = 6;


    //init MPI 
    if(MPI_Init(&argc,&argv) == MPI_SUCCESS)
    {
        //init number of process and rank
        int numProc , rank;

        MPI_Comm_size(MPI_COMM_WORLD,&numProc);
        MPI_Comm_rank(MPI_COMM_WORLD,&rank);


        //call the process master 
        if(rank == 0)
            procMaster(numProc,max_streak_length);
        //call the process slaves
        else
            procSlave(numProc,rank,max_streak_length);

        MPI_Finalize();
    }



    //playGame(15);

    return 0;

}

【问题讨论】:

    标签: c++ mpi command-line-arguments


    【解决方案1】:

    简单的答案是

    int max_streak_length = atoi(argv[1]);
    

    请注意,对于从命令行传递的任何内容,您确实应该添加一些错误检查,您应该检查参数是否确实存在(即 argc > 1)并且输入的值确实是整数,并且它是值在你期望的范围内等等等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2011-09-28
      相关资源
      最近更新 更多