我正在尝试从文件中读取 3x3 矩阵。该文件包含如下所示的数据。
5 65 3
3 11 15
22 8 3
到目前为止,我有以下代码,
int data[3][3];
int i = 0;
int j = 0;
FILE *fptr = fopen("data.txt", "r");
for(; i < 3; ++i){
fscanf(fptr, "%d %d %d", &(data[i][0]), &(data[i][1]), &(data[i][2]));
}
i = 0;
for(; i < 3; ++i){
for(; j < 3; ++j){
printf("%d ", data[i][j]);
}
printf("\n");
}
fclose(fptr);
但是,只从文件中读取矩阵的第一行。当我尝试打印时,只显示第一行,然后是两个空行。
最佳答案
只需正确编写 for 循环即可:
for(i = 0; i < 3; ++i){
for(j = 0; j < 3; ++j){
否则,在您的情况下,即使外部循环正常但内部 j
循环正确运行一次,但由于 j==3
并且未重置,它不会在接下来的 2 次外部迭代中恢复。
最后的 2 个 i
循环是空的,什么也不做。
(并且没有必要在for
语句之外初始化i
和j
)
关于c - 程序只读取 C 中 Matrix 的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142969/