我正在使用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;
}
答案 0 :(得分:0)
简单的答案是
int max_streak_length = atoi(argv[1]);
请注意,对于从命令行传递的任何内容,您确实应该添加一些错误检查,您应该检查参数是否实际存在(即argc> 1)并且输入的值确实是一个整数,并且它是值在你期望的范围内等等。