c - 程序只读取 C 中 Matrix 的第一行

标签 c file matrix

我正在尝试从文件中读取 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语句之外初始化ij)

关于c - 程序只读取 C 中 Matrix 的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142969/

相关文章:

c++ - 错误:arma::memory::acquire():Armadillo 内存不足

c - 没有这样的文件或包含头文件 C 的目录错误

c - c 函数中导出的环境变量是否在父 shell 中可用?

c - 在 C 中使用 utime 在 UNIX 上获取文件修改时间

C : Write char array (containing '1' and '0' ) into as binary in a file

sorting - 在 julia 中对每个矩阵列进行排序

C 预计算表达式

c - HTTP 服务器和 CGI​​ 处理

linux - 选择并循环遍历两个目录 linux 中的差异

java - java中的行列式计算