因为这是我第一次在这里提问(并且作为一个不流利的英语发言人),如果你告诉我,如果我写错了我的问题,我会感激不尽。< / p>
当我使用mpirun时,无论我使用它的方式,都不会在终端上打印换行符(\ n)(虽然我不使用mpirun但它可以工作)。它似乎被空格字符(ASCII 32)替换。
如果你还没有,这可能会帮助每个人找出问题:
printf("tried newline\nend of text");
将打印
tried newline end of text
如果我使用以下功能,将打印相同的内容:
puts("tried newline\nend of text");
fprintf(stdout, "tried newline\nend of text");
printf("tried newline");
putchar(10);
printf("end of text");
char[]n = "tried newline\nend of text";
printf("%s", n);
当然,在使用它们之前,我写了这篇文章是为了让每行写一行:
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(!rank) //with brackets when need
这仅适用于控制台。如果我写
fprintf(stderr, "tried newline\nend of text");
新行将打印在我的错误文件中。
由于MPI和Eclipse(我的IDE)之间存在一些兼容性问题,我不得不使用交叉GCC而不是Linux GCC。我不认为这很重要,因为如果我使用交叉GCC进行非并行相关程序,它可以正常工作。
有人遇到过这样的问题吗?有没有办法解决这个问题?