c++数据存储读出问题求解!
用ofstream outfile("student.dat",ios::binary);
for(int j=0;j<i;j++){
outfile.write((char*)&infor[j],sizeof(infor[j]));
}
方式存储的数据怎样在读取时确定infor[]到底有多少元素?infor[]是类数组
[解决办法]
1、
写的时候先把数组的元素个数用二进制写进文件(假定4字节的int型)
然后写数组的每个元素。
读的时候先读这个数字,然后for循环逐个读每个元素。
2、
写的时候直接写数组的元素。
读的时候,读到文件结束,就行了,这个方法不能用数组,用vector或者list这样可增大的容器。
3、
写字符串或者string对象也是这样,先写1个长度,后面才是实际的字符串。
[解决办法]
用vector或者list会比较方便。
1 以怎样的方式写进去的,就以什么样的方式读出来
2 写进去最后都是当成一个buf的形式写进去,读出来也是一个buf
最后只要以写的时候对应格式解析出来对应结构体就好!
注意下指针移动的位置就好!