我有一个包含两个整数的结构体,我希望将它们存储到二进制文件中并再次读取。
这是我的代码:
static const char *ADMIN_FILE = "admin.bin";
struct pw {
int a;
int b;
};
void main(){
pw* p = new pw();
pw* q = new pw();
std::ofstream fout(ADMIN_FILE, ios_base::out | ios_base::binary | ios_base::trunc);
std::ifstream fin(ADMIN_FILE, ios_base::in | ios_base::binary);
p->a=123;
p->b=321;
fout.write((const char*)p, sizeof(pw));
fin.read((char*)q, sizeof(pw));
fin.close();
cout << q->a << endl;
}
我得到的输出是
0
。有人能告诉我问题出在哪里吗?
fin.write
?应该是fin.read
吧。这是真正的代码吗?在打开输入文件之前,您可能需要刷新/关闭输出流。 - CB Bailey