注:雖然我在調試時,我發現,直到最後一行,程序正常運行,但最後的支架會時,一個錯誤窗口將彈出。我對C++不太熟悉,所以找不到問題。請幫忙!爲什麼此cpp程序失敗?
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
class test {
public:
int x;
void add_list(int);
void display();
private:
vector<int> list;
};
void test::add_list(int op)
{
list.push_back(op);
}
void test::display()
{
cout << x << endl;
for (unsigned int i=0;i<list.size(); i++)
cout << "->" << list[i];
cout << endl;
}
int main (void)
{
test test1;
test1.x = 3;
test1.add_list(2);
test1.add_list(4);
int size = sizeof (test1);
ofstream fout ("data.dat", ios_base::binary);
fout.write((char *)&test1, size);
fout.close();
ifstream fin ("data.dat", ios_base::binary);
test test2;
fin.read((char *)&test2, size);
test2.display();
fin.close();
return 0;
}
是什麼錯誤說? – SteveFerg
我們需要知道錯誤是什麼幫助。 – celticminstrel
@HaroldHuang閱讀和寫這種非POD類型將無法正常工作。您無法使用二進制模式保存或讀取這些類型。該對象必須正確序列化。 – PaulMcKenzie