gpt4 book ai didi

c - OpenMPI C语言scanf不停止接受输入(Mac OS X 10.10)

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:40 26 4
gpt4 key购买 nike

我正在尝试运行以下 MPI 代码。问题出在 scanf 上。该命令继续接受输入并且不在任何地方。它应该只接受一个输入字符串。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mpi.h>

int main(int argc,char * argv[])
{
int npes, myrank, length = 10;
char string[length+1]; // array size changed to length +1 as suggested in comments.
memset(string, 0, length+1);
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &npes);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);

if (myrank == 0) {
printf("Please enter the string of length %d or enter 0 to generate string randomly:\n", length);
scanf ("%10s", string); // format changed as suggested in comments
printf("%s\n", string);
}

MPI_Finalize();
return 0;
}

输出:

enter image description here

平台:Mac OS X 10.10

MPI 版本:打开 MPI:1.8.3

系统信息:Apple LLVM 版本 6.0 (clang-600.0.54)(基于 LLVM 3.5svn)目标:x86_64-apple-darwin14.0.0线程模型:posix

如有错误,请指正

最佳答案

由于将输入转发到所有进程的复杂性,在 MPI 程序中通常不建议从 stdin 读取。它不能在不同的实现之间移植。

通常,人们获取应用程序输入的方式是读取输入文件。这在任何地方都有效,您所要做的就是使文件在所有进程中可用。

关于c - OpenMPI C语言scanf不停止接受输入(Mac OS X 10.10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com