【发布时间】:2012-12-10 05:01:04
【问题描述】:
如何替换这个
itoa(i, buf, 10);
key1.append(buf);
key2.append(buf);
key3.append(buf);
std::to_string
itoa 给了我一个错误,它没有在范围内声明它不是标准的一部分
我听说我可以使用std::to_string 制作另一个版本,我该怎么做?
【问题讨论】:
-
这是reference。它甚至包括一个例子。
-
到底是什么问题?
std::to_string(i)不解决吗?问题是这会创建一个std::string,但你需要一个char *? -
@jogojapan - 这只有在 C++11 中才有可能,对吧?
-
是的,
std::to_string只存在于 C++11 中。如果您正在寻找适用于 C++98/03 的解决方案,则不能使用std::to_string。boost::lexical_cast通常被推荐作为替代方案(但要求您包含 Boost 库中的相关标头)。当然,答案中提到的std::ostringstream是另一种选择。