gpt4 book ai didi

c - 从文件中读取由换行符分隔的矩阵

转载 作者:行者123 更新时间:2023-11-30 16:17:41 25 4
gpt4 key购买 nike

我需要从以下格式的文件中读取任意维度的两个矩阵:

1 2 41 3 79 2 4 0 2 4 1 5 7  0 2 4

The second matrix mustn't necessarily be present. I wrote a code that can already read the first matrix:

int main (int argc, char *argv[]){

FILE *fp;
int i, j;
int initial_dim = 5;
int n1 = 0; /*dimension of the first matrix*/
int n2 = 0; /*dimension of the second matrix*/
double A[n][n];
double B[n][n];

if (argc == 1){
printf("Please enter file name\n");
return 1;
}

if( (fp = fopen(argv[1], "r")) != NULL ){
for(i=0; i < initial_dim; i++)
for(j=0; j < initial_dim; j++)
if (fscanf(fp, "%lf", &A[i][j]))
n1++;

double x = determinant(n1, A);
printf("Determinant: %g\n", x);
fclose(fp);
}

else{
printf("I can't open file %s\n", *argv);
return 1;
}
return 0;
}

我需要一种方法来跳过分隔符并读取第二个矩阵

最佳答案

我找不到写简短答案的方法,所以我只是在这里编写了执行此操作的代码:http://gitlab.dotty.fr/dotty/read_matrix/tree/master

我编写的代码可以从输入文件中读取任意数量的矩阵并将它们存储在结构中。我认为您可以修改此代码以轻松匹配您想要执行的操作。

如果您有任何疑问,请让我澄清。

下面是代码的一部分,以显示主要内容有多么简单:

int main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "Usage: %s <mat_file>\n", argv[0]);
exit(EXIT_FAILURE);
}

FILE *file = fopen(argv[1], "r");
if (file == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}

while (mat_parse_next(file))
{
struct matrix *mat = mat_read(file);
mat_dump(mat);
mat_free(mat);
}

fclose(file);
return 0;
}

关于c - 从文件中读取由换行符分隔的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56217266/

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