0

我正在使用 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;

}
4

1 回答 1

0

简单的答案是

int max_streak_length = atoi(argv[1]);

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

于 2013-10-08T04:38:06.607 回答