求助:二进制文件存储数据
问题描述如下:
有三层类结构,为:
class Visitor
{
......
};
class Student:public Visitor
{
......
}
class Undergraduate:public Visitor
{
public:
......
void Creat(fstream &,Student &,fstream &,Undergraduate &);
......
protected:
......
}
Creat函数具体定义如下:
void Undergraduate::Creat(fstream & iofileone,Student & stu,fstream & iofiletwo,Undergraduate & und)
{
......
}
iofileone存的是Student类的数据,现在想在Creat函数里用iofileone.read()函数和cout语句读出这些数据,结果必不可行,出现乱码.问题何在,在下实在不明,望名位赐教,感激不尽.
[解决办法]
结构不同,
每个类对象的 2进制数据能一样吗?
[解决办法]
把 Undergraduate 实现的和 Student 一模一样,
自然就不会乱码了 ...
[解决办法]
如果只是读数据的话,看起来和你的类层次没有关系(当然,如果是三层的话,Undergraduate应该继承Student)。
想问以下iofileone所读的文件是由谁、怎样存储的。读取的方式需要和存储的方式一样。
[解决办法]
lz 可以讲明白 iofileone 的数据从哪里来
之前是怎么存的
读和写的代码对照一下,或许就可以找到问题所在
[解决办法]
读写格式一致才对应的上,楼上各高人们解释完了。