如何从命令行传递max_streak_length

时间:2013-10-08 04:35:11

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

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

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;

}

1 个答案:

答案 0 :(得分:0)

简单的答案是

int max_streak_length = atoi(argv[1]);

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