C++怎么把文件中的数据读入到对象数组中呢?

类consumer{private:charpasswd[];public:charnum[];floatmoney;}不要求文件中数据的排布。谢谢大佬了。不需要太复杂,... 类consumer
{private:char passwd[];
public:char num[];float money;}不要求文件中数据的排布。
谢谢大佬了。不需要太复杂,偏C语言些。再次感谢。
展开
 我来答
cylz0703
2019-10-18 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4328万
展开全部

对象私有数据成员的赋值需要通过公有成员函数,为了简单些、偏C语言些,进行了简化,参考代码如下:

#include "stdio.h" 

class consumer{

public:

char num[10];

char passwd[10];

float money;

} t,c[5];

int main()

{

    FILE *fp;

    int i;

    fp=fopen("consumers.data","wb");

    if(fp==NULL) {

        printf("error\n");

        return 0;

    }

    for(i=0; i<5; i++){

    printf("请输入客户号、密码、金额:(以空格隔开、最后以回车结束)\n");

    scanf("%s%s%f%*c",t.num,t.passwd,&t.money);

    //注意输入格式为:字符串 空格 字符串 空格 浮点数 回车 

    fwrite(&t, sizeof(consumer), 1, fp);

    }

    fclose(fp);

    

    fp=fopen("consumers.data","rb");

    if(fp==NULL) {

        printf("error\n");

        return 0;

    }

    printf("文件读入结果如下:\n");

    fread(c,sizeof(consumer),5,fp);

    for(i=0; i<5; i++){

printf("%s %s %.2f\n",c[i].num,c[i].passwd,c[i].money);

    }

    fclose(fp);

    return 0;

}

更多追问追答
追问
类的私有成员怎么赋值呢?
若是先读入到另一盒字符串,再用类给私有成员赋值的函数给私有成员赋值,会不会破坏私有成员的安全性呢?
追答
文件块读写是过程化例程,把类当做了普通结构体,会对私有成员进行修改(会破坏安全性);
通过调用成员函数修改私有数据成员是C++类和对象一章最基本的,你再看看书好吧。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式