首页 > 解决方案 > 如何读取将二进制文件中的元素放入其中的数组?

问题描述

所以我所做的是

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
int osobna;
char prezime[50+1];
char ime[50+1];
int dan,mj,god;
char ulica[100+1];
int broj;
char grad[30+1];
}glasac;

int main()
{
    FILE *fin = fopen ("puk.dat","rb");
    fseek(fin,0,SEEK_END);
    int n = ftell(fin) / sizeof(glasac);
    rewind(fin);
    glasac *niz = (glasac*)calloc(sizeof(glasac),n);
    fread(&niz[0],sizeof(glasac),n,fin);
    fclose(fin);
    int i;
    for (i = 0; i < n; i++){
        fprintf(fin,"%d| %s| %s| %d.%d.%d| %s| %d| %s \n",niz[i]->osobna,niz[i]->prezime,niz[i]->ime,niz[i]->dan,niz[i]->mj,niz[i]->god,niz[i]->broj,niz[i]->grad);
    }
     return 0;
}

我知道代码的风格很差,需要大量的润色,对于没有用英文命名变量,我深表歉意。为什么这个打印不起作用,为什么我不能读取我放入该数组的内容?非常感谢和爱你们!

标签: carraysfilebinarystructure

解决方案


推荐阅读