我有我的结构:
struct a
{
int x;
float f;
double d;
char c;
char s[50];
};
我希望每次都将自己的计时器时间表添加到二进制文件中。
// declaration
std::ofstream outFile;
// constructor:
outFile.open( "save.dat", ios::app );
// tick:
outFile << a << endl;
但是在save.dat内部仅显示以下内容:
0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..
提前致谢
最佳答案
您当前正在做的是编写结构定义的地址。
您要做的是使用ostream::write
outfile.write(reinterpret_cast<char*>(&myStruct), sizeof(a));
只要您的结构是POD(普通旧数据)类型(您的示例就是这种类型),此方法就可以工作。 POD类型表示所有成员的大小都是固定的。
另一方面,如果您有可变大小的成员,则需要逐个写出每个成员。
关于c++ - C++将结构 append 到二进制文件中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6829774/