注册 登录
编程论坛 C语言论坛

新手菜鸟求问fscanf读取文件数据存入数组问题

alix4996 发布于 2020-06-05 12:41, 2177 次点击
生成数组s[3][3]存放到z.txt里,然后从中读取出来存放到t[3][3],但不知道是不是指针哪里出了问题,读取结果总是溢出了
只有本站会员才能查看附件,请 登录

#pragma warning(disable:4996)
#include<stdio.h>
#include<math.h>

int main() {
    FILE* z;
    z = fopen("zg.txt", "wt+" );
    float s[3][3];

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            s[i][j] = (float)i + j;
            fprintf(z, "%f ", s[i][j]);
        }
        fprintf(z, "\n");
    }


    float t[3][3];

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                fscanf(z, "%f", &t[i][j]);
            }
            fscanf(z, "\n");
        }



    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%f ", t[i][j]);
        }
            printf("\n");
    }

    system("pause");
    return 0;
}
4 回复
#2
alix49962020-06-05 12:48
在CSDN上搜了半天,可能是因为野指针,但水平过差没太看懂,只能判断是指针在取地址时出错,救救孩子吧!
#3
rjsp2020-06-05 12:58
关闭文件,重新打开,或者用rewind等函数
#4
forever742020-06-05 13:01
文件不能随意说读就读说写就写。
写完了需要rewind(z);
或者fseek(z,0,SEEK_SET);
这样调整一下然后才能从头开始读。
#5
alix49962020-06-05 13:14
谢谢前辈们!我试了下可以了!原来是因为没有关闭文件读取的时候指针从文件末尾读的是吗!太感谢了

[此贴子已经被作者于2020-6-5 13:27编辑过]

1