【发布时间】:2020-06-21 08:12:23
【问题描述】:
我对 c++ 还很陌生。我正在使用 Visual Studio IDE。我正在学习如何将对象发送到文件以及如何检索它们。在检索时,我在那个地方得到了一个异常。我不知道该怎么办
#include <iostream>
#include <fstream>
class Entity
{
public:
int ID;
const char* name;
Entity(): ID(-1), name("NOT ASSIGNED") {}
Entity(int a, const char* b) : ID(a), name(b) {}
};
std::ostream& operator<<(std::ostream& stream, Entity &e)
{
stream << e.ID << " " << e.name << std::endl; //exception is thrown here
return stream;
}
void WriteToFile(Entity e)
{
std::cout << "Writing to file\n";
std::ofstream fout("ENTITY.txt", std::ios::app|std::ios::binary);
fout.write((char*)&e, sizeof(e));
fout.close();
}
void ReadFromFile()
{
std::ifstream fin("ENTITY.txt", std::ios::binary | std::ios::in);
while (!fin.eof())
{
Entity a;
fin.read((char*)&a, sizeof(a));
std::cout << a;
}
}
int main()
{
Entity a(1, "A");
Entity b(15, "C");
Entity x;
WriteToFile(a);
WriteToFile(b);
WriteToFile(x);
ReadFromFile();
}
【问题讨论】:
-
生成的文件内容是否符合预期?无论如何,作为这里的新用户,请带上tour阅读How to Ask。
标签: c++