gpt4 book ai didi

c++将结构 append 到二进制文件中

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:27 25 4
gpt4 key购买 nike

我有我的结构:

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++将结构 append 到二进制文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com