我是一个非常基础的用户,对 C 中使用的命令不太了解,所以请多多包涵……我不能使用非常复杂的代码。我对 stdio.h 和 ctype.h 库有一些了解,但仅此而已。我在 txt 文件中有一个矩阵,我想根据我输入的行数和列数加载矩阵
例如,我在文件中有一个 5 x 5 矩阵。我想提取一个特定的 2 x 2 子矩阵,我该怎么做?
我使用以下方法创建了一个嵌套循环:
FILE *sample
sample=fopen("randomfile.txt","r");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
fscanf(sample,"%f",&matrix[i][j]);
}
fscanf(sample,"\n",&matrix[i][j]);
}
fclose(sample);
可悲的是代码不起作用..如果我有这个矩阵:
5.00 4.00 5.00 6.00
5.00 4.00 3.00 25.00
5.00 3.00 4.00 23.00
5.00 2.00 352.00 6.00
并为行输入 3,为列输入 3,我得到:
5.00 4.00 5.00
6.00 5.00 4.00
3.00 25.00 5.00
这不仅不是 2 x 2 子矩阵,而且即使我想要前 3 行和前 3 列,它也无法正确打印它......
我需要从第 3 行和第 3 列开始,然后取 2 x 2 子矩阵!
我应该最终得到:
4.00 23.00
352.00 6.00
我听说我可以使用 fgets 和 sscanf 来完成这个。这是我的试用代码:
fgets(garbage,1,fin);
sscanf(garbage,"\n");
但这也不起作用:(
我究竟做错了什么 ?
请帮忙。谢谢 !