2 baidu 37263244 baidu_37263244 于 2017.01.05 20:03 提问

c++怎么将一个类的对象数组从文件中读取出出来?

如题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

3个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.05 20:27

需要通过序列化的方式把对象写入文件,然后读出来的时候再序列化回对象。

baidu_37263244
baidu_37263244 具体怎么序列化呢?
11 个月之前 回复
VisualEleven
VisualEleven   Ds   Rxr 2017.01.06 11:14

那你需要先知道数据是怎么保存到文件中去的?

shen_wei
shen_wei   Ds   Rxr 2017.01.12 15:45
 struct Student
{
    int nYear;
    char czName[20];
    char czNumber[10];
    char czTel[12];
    int nAge;
    float fScore[5];
}Student[10];


int main()
{ 
    int nCount = 0;
    FILE *fp = fopen("22.txt","rb");
    if(fp == NULL)
    { 
        printf("can not open file!\n");
        exit(0);
    }
    for(int i = 0;i < 100;i ++)
    {
        int nRes = fscanf(fp,"%d %s %s %s %d %f %f %f %f %f",&Student[i].nYear,Student[i].czName,Student[i].czNumber,Student[i].czTel,
            &Student[i].nAge,&Student[i].fScore[0],&Student[i].fScore[1],&Student[i].fScore[2],&Student[i].fScore[3],&Student[i].fScore[4]);
        if (nRes == -1)
        {
            nCount = i;
            fclose(fp);
            break;
        }       
    }

    for (int i = 0;i < nCount;i ++)
    {
        printf("%d %s %s %s %d %.2f %.2f %.2f %.2f %.2f\n",Student[i].nYear,Student[i].czName,Student[i].czNumber,Student[i].czTel,
            Student[i].nAge,Student[i].fScore[0],Student[i].fScore[1],Student[i].fScore[2],Student[i].fScore[3],Student[i].fScore[4]);
    }
    fclose(fp);
    return 0;
}

结构体的数据存储。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!