C++ 具有二进制文件的游戏场

C++ 具有二进制文件的游戏场,c++,bin,C++,Bin,我正在编写一个棋盘游戏,我必须制作一个名为“write”的二进制文件,它总是写入当前的游戏场。它包含活动玩家、最大和最小x/y坐标等信息。没有标记的字段的值应为零。必须这样做,以便能够更容易地自动测试程序 我曾想过创建一个名为CurrentField的类,每次运行后我都会在二进制文件中写入该类,但我不确定如何确保所有内容都能在需要的位置写入(我们必须声明一个特定的头,并且某些内容应该在某个偏移量中) 有什么想法吗?好主意,还是有更好的方法 编辑:有人知道一种测试二进制文件中真正写入内容的方法吗?

我正在编写一个棋盘游戏,我必须制作一个名为“write”的二进制文件,它总是写入当前的游戏场。它包含活动玩家、最大和最小x/y坐标等信息。没有标记的字段的值应为零。必须这样做,以便能够更容易地自动测试程序

我曾想过创建一个名为CurrentField的类,每次运行后我都会在二进制文件中写入该类,但我不确定如何确保所有内容都能在需要的位置写入(我们必须声明一个特定的头,并且某些内容应该在某个偏移量中)

有什么想法吗?好主意,还是有更好的方法

编辑:有人知道一种测试二进制文件中真正写入内容的方法吗? Edt2:必须用C++标准库来解决。
性能并不重要,因为它不会是一个大文件。仅在输入命令时写入的想法是好的。

至少有两个好的库可以帮助您实现这一点

  • 设计用于序列化某些任意结构。它包括一些很好的概念,如版本控制(您可以选择在游戏更新中更改存储的数据,并保持前一个游戏状态不变)和存档(如果您想更改文件格式怎么办

  • 它的设计目的是以极高的速度解析和序列化任何文本和二进制协议。它的工作速度要快得多

  • 您可以通过将内存位置存储在文件中来解决任何问题。不过,请小心指针


  • 检查您是否真的需要在每一步都执行此操作,因为文件系统调用非常慢。至少,异步执行(查找)抱歉,我只允许使用C++标准库,它必须是二进制文件。文件不会很大,因为最多有8x8字段,所以性能不会是问题。谢谢你的帮助。你问我“如何写二进制文件”?什么是“令牌”??很抱歉问了更多的问题而没有给出答案。是的,我确实要求有一个好方法来在bin文件中写入我想要的内容。我的方法是编写一个自我更新的类。但我不确定这是否是一个精确的方法。为什么你关心类,这是最后一件重要的事情。逐字节写入。你需要编写任何东西吗什么比字节大?你需要签名还是不签名的数字?我只是在浪费你的时间,但我希望你不要介意。我不能一个字节一个字节地写,因为它必须在每个回合都是最新的。所以如果我写“活动玩家:1”,“最大x坐标:7”等等,它必须是最新的。我认为编写一个自动更新的类比较容易。而nvm,在学习编码时似乎没有任何价值。