什么是从int | double到string的转换的简洁C ++习语?

时间:2013-08-23 12:10:01

标签: c++

通过相关的Q& A来看,转换为字符串的最佳C ++实践似乎是

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

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

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:10)

是的,std::to_string

output_string = std::to_string(input_value);

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

答案 2 :(得分:3)

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

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

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

如果您 拥有C ++ 11,请坚持使用std::to_string Jesse Good&amp; juanchopanza已经提到过。

答案 3 :(得分:0)

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

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

std::string s2 = std::to_string(42.0);