所以我试图让一个C程序读入一个文件,这个文件是一个整数,格式是第一个值是文件的长度,下面几行是随机整数,例如:
4
2
7
8
17
或
3
9
23
14
我想做的是读取文件,将每一行附加到一个向量上,然后将向量拆分成相等的大小,并将它们分布到多个MPI进程中,以供后续任务使用。
我目前已经尝试过计算文件中的行数,然后通过for循环创建一个向量来存储文件中的所有元素。但是这并不奏效。我将非常感谢任何帮助。我的尝试如下:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <mpi.h>
int main( int argc, char *argv[]) {
int rank, world_size;
int root;
int i;
MPI_Init( &argc, &argv );
MPI_Comm_rank( MPI_COMM_WORLD, &rank);
if (rank == 0) {
char Line[100];
char c;
int count_lines=0;
FILE *fp = fopen("Input_16.txt","r");
for (c = getc(fp); c != EOF; c = getc(fp))
if (c == '\n') // Increment count if this character is newline
count_lines = count_lines + 1;
int array[count_lines];
for (i=0; i<count_lines; i++)
array[i]=fgets(Line,100,fp);
printf("Prints: %c \n",array[i]);
}
MPI_Finalize();
}
1条答案
按热度按时间ycl3bljg1#
我对MPI一无所知,但以下是您读取文件的方式:
和运行示例: