c++,结构体保存到文件,和从文件中读取内容到结构体的过程是怎么样的呢?

结构体保存到文件,和从文件中读取内容到结构体的过程是怎么样的呢?fout.write((char*)&pe,sizeofpe);这个过程是把结构体的各个成员逐个的写入到文... 结构体保存到文件,和从文件中读取内容到结构体的过程是怎么样的呢?
fout.write((char*)&pe, sizeof pe);
这个过程是把结构体的各个成员逐个的写入到文件吗?就是先写入pe.name,然后再pe.weight以此类推?
或者是直接把结构体的构造函数写入到文件呢?people pe={"李勇", 78.5, 181, 25, 'f'};这样?

把文件中的内容读入到结构体:
fin.read((char*)&pa, sizeof pa);
他是怎么读入到结构体的呢?读取文件的时候读的是pe.name,然后赋给pa.name。还是读取"李勇",在赋值给pa.name呢?还是直接pa={"李勇", 78.5, 181, 25, 'f'};这样呢?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int num=20;
struct people
{
char name[num];
double weight;
int tall;
int age;
char sex;
};

int main()
{
people pe={"李勇", 78.5, 181, 25, 'f'};
ofstream fout("people.dat", ios::out|ios::binary);
fout.write((char*)&pe, sizeof pe);
fout.close();
people pa={0};
ifstream fin("people.dat", ios::binary);
fin.read((char*)&pa, sizeof pa);
cout<<pa.name<<" "<<pa.age<<" "<<pa.weight<<" "<<pa.tall<<" "<<pa.sex<<endl;
fin.close();
return 0;
}
展开
 我来答
犯困了
2014-01-26 · 超过11用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:28.5万
展开全部
看程序就是把内存直接写到文件里了。虽然可以,但一般不这样做。因为随着程序的扩展,结构体可能要增改变量。推荐用 protobuf 或 thrift 或 json 等等的序列化协议,把内存中的内容序列化成字符串,写入文件。读取的时候再反序列化回内存对象。
护戒之淼
推荐于2016-05-31 · TA获得超过132个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:243万
展开全部
io操作是直接在内存指针按字节写入,你读取了文本内容,相对于存储了一整条的内存数据,然后你write也是按字节逐字写入,从你的结构体第一位开始写。如果你的格式和结构体格式一致的话,自然不会出问题的!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式