如何通过文件流将一个结构体写入文件或者从文件中读取信息填充结构体?

tsaiyc 2007-04-17 05:43:18
一个结构体,说简单点
struct person
{
char name[20];
bool sex;
}
//填充person结构体
。。。
//填充完毕
ifstream input("person.txt", ios::in);
本来想用input<<(void*)&person;
发现编译错误。
//读取部分略,同样问题。错误是<<右边类型出错。


因此求助。
...全文
395 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwlzwlzwl 2007-04-17
  • 打赏
  • 举报
回复
ofstream input("person.txt", ios::in);
input<<person.name<<person.sex;
FingerStyle 2007-04-17
  • 打赏
  • 举报
回复
自己再完善下吧。。。
FingerStyle 2007-04-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct person
{
char name[20];
bool sex;
person()
{
strcpy(name, "classpatterns");
sex = 1;
}
};

template <class T>
class m_stream_iter
{
public:
ostream * ou;

m_stream_iter(ostream& t)
{
ou = &t;
}
m_stream_iter<T>& operator= (T& p)
{

for (int i=0; i<20; i++)
{
*ou << p.name[i];
}
*ou << p.sex << endl;
return *this;
}
m_stream_iter<T>& operator * ()
{
return *this;
}
m_stream_iter<T>& operator ++()
{
return *this;
}
};
int main()
{
ofstream out("a.txt");
vector<person> pV;
person a;
pV.push_back(a);
copy(pV.begin(), pV.end(), m_stream_iter<person>(out));

return 0;
}
freshui 2007-04-17
  • 打赏
  • 举报
回复
person 不是 built-in 类型的缘故?
roger_77 2007-04-17
  • 打赏
  • 举报
回复
同一个问题。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧