如何在C++中读取Python UUID字节串?

0 投票
2 回答
868 浏览
提问于 2025-04-17 00:08

我在Python中用uuid.bytes方法创建了一个16字节的字符串,像这样: 'I\x9e|T\r\xad@\x80\x986m\x00\x1c\x07z0' 比如说,我要把它传递给一个C++文件。

请问我能否在C++那边读取这个字符串并重建UUID?我打算把它读入一个16个字符的数组,因为一个字符等于1个字节,但接下来该怎么做我不太确定。

2 个回答

0

我会使用:

UUID.hex

除非你需要以二进制的形式表示。不需要来回转换。

1

像这样(还没测试过)

char to_hex(int x)
{
  return x < 10 ? x + '0' : (x - 10) + 'A';
}

char bytes[16];
...
std::string uuid;
for (int i = 0; i < 16; ++i)
{
  uuid += to_hex((bytes[i] >> 4) & 0x0F);
  uuid += to_hex(bytes[i] & 0x0F);
}

撰写回答