我需要编写一个程序来读取各种文件并将信息存储到数组中。我将使用双打来执行矩阵乘法。关于文件的格式;第一行包含矩阵的大小。接下来的几行是矩阵的行,其中每个元素用空格分隔。
格式:
<number of rows> <number of columns>
<double> <double> ... <double>
<double> <double> ... <double>
.
.
.
<double> <double> ... <double>
以下是几个示例文件:
3 4
1.20 2.10 4.30 2.10
3.30 3.10 5.20 2.80
1.10 0.60 4.70 4.90
或者
5 5
1.20 2.10 4.30 2.10 6.70
3.30 3.10 5.20 2.80 3.20
1.10 0.60 4.70 4.90 9.10
3.30 3.10 5.20 2.80 3.20
1.10 0.60 4.70 4.90 7.10
目前我的代码如下:
float** readFile(char* fp)
{
float** matrix = (float**)malloc(M*N*sizeof(float));
fp = fopen(fp, "r");
if (fp == NULL)
{
fprintf(stderr, "Can't open the file\n");
exit(1)
}
int i = 0;
int m, n;
fscanf(fp, "%d %d", m, n);
while (fscanf(fp, "");
{
i++;
}
fclose(fp);
return matrix;
}
我正在调用这样的函数:
float** A = readFile(argv[1]);
显然,由于在读取文件时 fscanf 中缺少参数,这目前不起作用。如何使用 fscanf 将值读入矩阵?