通过相关的Q& A来看,转换为字符串的最佳C ++实践似乎是
ostringstream stringStream;
stringStream << input_value; // let's say, input_value is a double
output_string = stringStream.str();
有没有办法在不到三行干净的C ++中实现同样的目标?
答案 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)
答案 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);