ghi*_*boz 1 c++ struct file append
我有我的结构:
struct a
{
int x;
float f;
double d;
char c;
char s[50];
};
Run Code Online (Sandbox Code Playgroud)
我希望每次都将我的计时器时间表附加到二进制文件中.
// declaration
std::ofstream outFile;
// constructor:
outFile.open( "save.dat", ios::app );
// tick:
outFile << a << endl;
Run Code Online (Sandbox Code Playgroud)
但是在save.dat里面只出现这个:
0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..0C3A0000..
Run Code Online (Sandbox Code Playgroud)
提前致谢
您目前正在做的是编写结构定义的地址.
你想要做的是使用ostream :: write
outfile.write(reinterpret_cast<char*>(&myStruct), sizeof(a));
Run Code Online (Sandbox Code Playgroud)
只要您的结构是POD(普通旧数据)类型(您的示例是),这将起作用.POD类型表示所有成员都具有固定大小.
另一方面,如果你有可变大小的成员,那么你需要逐个写出每个成员.