【发布时间】:2015-08-10 12:55:59
【问题描述】:
在编译这个简单的代码时:
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
class Example
{
public:
char charo;
int into;
};
int main()
{
Example one,two;
one.charo = 'X'; one.into = 2;
//WRITING
ofstream file;
file.open("my.prx", ios_base::binary);
if(file.good()) file.write((char*)&one, sizeof(Example));
else cout << "ERROR WHILE OPENING FILE" << endl;
file.close();
//READING
file.open("my.prx", ios_base::binary);
if(file.good())
file.read((char*)&two, sizeof(Example));
else cout << "ERROR WHILE OPENING FILE" << endl;
file.close();
//PRINTING
cout << "CHAR: " << two.charo << endl;
cout << "INT: " << two.into << endl;
}
我收到此错误消息:
g++ -o test1 main.c main.c: 在函数'int main()'中: main.c:43:7: 错误:“std::ofstream”没有名为“read”的成员
file.read((char*)&two, sizeof(Example));
我该如何解决? 我的下一步将是制作一个更复杂的对象来保存:
Class Memory{
t_monitor monitors[MAX_MONITORS];
t_status status[MAX_STATUS];
t_observer observers[MAX_OBSERVERS];
Var * first_var;
int tot_observers;
int tot_status;
int tot_monitors;
};
如您所见,还有一个列表...
【问题讨论】:
-
我会使用现有的解决方案,例如boost serialization,而不是重新发明轮子......
-
ofstream中的o代表输出。
标签: c++ object serialization