C++怎么把文件中的数据读入到对象数组中呢?
{private:char passwd[];
public:char num[];float money;}不要求文件中数据的排布。
谢谢大佬了。不需要太复杂,偏C语言些。再次感谢。 展开
对象私有数据成员的赋值需要通过公有成员函数,为了简单些、偏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++类和对象一章最基本的,你再看看书好吧。。。