c++ print/read to/from 文本文件 - 十六进制值和 4 个整数并读取它们并相应地分隔数据

c++ print/read to/from text file - hex value and 4 integers and read them and separate data accordingly

你好,我有一个迷宫解决机器人,当它使用所述钥匙打开门时,它使用十六进制钥匙(例如 0xFA25)打开门,如果钥匙有效并且门打开,我希望它打印房间名称,然后是门的方向,后面是钥匙本身,所以我可以对其进行硬编码。

例如写入文件的格式如下:2Y35 2 0x200F

我存储房间的 name/location 没有问题,因为我可以写 3 个整数,方向相同,我遇到的问题是如何打印十六进制值,例如我尝试打印之前的值和它们像 195151 一样出现(不确定这是否是存储的所述十六进制值的结果数)但是因为我还需要将十六进制值读回系统我需要它格式化为它的 4 位十六进制值(例如0xFA25).

另一个问题是我如何让机器人读取以下行:2Y35 2 0x200F(例如) 并将该行排序为 Level = 2, (ignore Y), North/south = 3, east/west = 5 direction = 2 key = 200F

没有代码我可以post这里会让它更清楚

有趣的是我解决了它,很明显我没有仔细研究我的旧问题,使用 istringstream 将它分开,但是没有将它格式化为例如 2Y03 1 FF2A,它的格式更像:2 0 3 1 65322

我的存储方式是

used_keys << level << ' ' << ns << " " << ew << " " << direction << " " << key << std::endl;

我的阅读方式是

while (getline(used_keys, line)) {
            std::istringstream iss(line);
            int level;
            int ns;
            int ew;
            int direction;
            int key;

            // this splits the string with the delimiter of whitespace

            iss >> level >> ns >> ew >> direction >> key;

            room_id[level][ns][ew].used_keys[direction] = key;
            printf("STORED KEY - %6d\n", room_id[level][ns][ew].used_keys[direction]);
        }

bot 完美运行,仅在尚未从文件中读取密钥时才将密钥保存到文件中,希望这对正在寻找与我相同的字符串拆分的人有所帮助