0

通过相关的问答,似乎转换为字符串的最佳 C++ 实践是

ostringstream stringStream;
stringStream << input_value;        // let's say, input_value is a double
output_string = stringStream.str();

有没有办法在不到三行干净的 C++ 中实现相同的目标?

4

4 回答 4

12

使用std::to_string函数族:

std::string s = std::to_string(3.1416);

如果您没有所需的 C++11,另一种选择是boost::lexical_cast.

std::string s = boost::lexical_cast<std::string>(3.1416);
于 2013-08-23T12:11:47.133 回答
10

是的,使用std::to_string

output_string = std::to_string(input_value);

(对于 C++03,请查看boost::lexical_cast)。

于 2013-08-23T12:11:44.867 回答
3

如果你没有 C++11,你可以使用类似的东西:

boost::lexical_cast<std::string>(input_value);

(如果您不想要 Boost,编写自己的 to_string 很容易 - 您实际上只是将现有代码包装在一个函数中)。

如果您确实有 C++11,请坚持使用std::to_string已经提到的 Jesse Good 和 juanchopanza。

于 2013-08-23T12:12:47.553 回答
0

两者都是 C++ 11 中的单行代码:

std::string s1 = std::to_string(42);

std::string s2 = std::to_string(42.0);
于 2013-08-23T12:15:37.167 回答