将boost :: uuid转换为char *

时间:2010-08-10 18:43:40

标签: c++ boost uuid

我希望将boost :: uuid转换为const char *。转换的正确语法是什么?

5 个答案:

答案 0 :(得分:44)

以防万一,还有boost::uuids::to_string,其工作方式如下:

#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>

boost::uuids::uuid a = ...;
const std::string tmp = boost::uuids::to_string(a);
const char* value = tmp.c_str();

答案 1 :(得分:40)

你可以使用在引擎盖下使用std :: stringstream的boost :: lexical_cast来做到这一点。

#include <boost/lexical_cast.hpp>
#include <boost/uuid/uuid_io.hpp>

const std::string tmp = boost::lexical_cast<std::string>(theUuid);
const char * value = tmp.c_str();

答案 2 :(得分:10)

您可以加入<boost/uuid/uuid_io.hpp>,然后使用运算符将​​uuid转换为std::stringstream。从那里开始,根据需要标准转换为const char*

有关详细信息,请参阅the Input and Output second of the Uuid documentation

std::stringstream ss;
ss << theUuid;

const std::string tmp = ss.str();
const char * value = tmp.c_str();

(有关为什么需要“tmp”字符串的详细信息,see here。)

答案 3 :(得分:1)

您可以使用boost / uuid / uuid_io.hpp中的流函数。

boost::uuids::uuid u;

std::stringstream ss;
ss << u;
ss >> u;

答案 4 :(得分:0)

boost::uuids::uuid u;

const char* UUID = boost::uuids::to_string(u).c_str();

可以进行简单而快速的转换。