C++怎样一次把一个对象写进去

来源:百度知道 编辑:UC知道 时间:2024/05/28 23:47:02
我想一次把一个对象写进文件
比如 出来class A
A a;
把这个小a写进文件
不行啊
class A;
A a;
ofstream myfile("dad.dat","ios::app")
myfile<<a
这样不行 啊

这个不行,要把对象写入流(不管是文件还是内存流),必须对对象进行序列化。

否则像上面几位说的那样强制写入,当对象稍微复杂点,就会出现严重问题。带指针的结构体也存在这个问题。适合直接写入文件的数据类型仅限于简单数据类型,其它复杂一些的都需要视情况进行特殊处理。

序列化涉及很多东西,这里一时半会说不清,你上baidu搜一下吧。

不过我觉得大多数情况不需要把整个对象写入文件啊,如果这个对象中保存了某些数据,你只要把这些数据单独写入文件,下次读取它们重新构造一个对象即可。

ofstream f("文件名");
f.write((char*)a, sizeof(a));
当然之前你要把对象a的属性初始化!~~

ofstream( "txt", "w" );
txt << a;

直接写就可以了