通过相关的问答,似乎转换为字符串的最佳 C++ 实践是
ostringstream stringStream;
stringStream << input_value; // let's say, input_value is a double
output_string = stringStream.str();
有没有办法在不到三行干净的 C++ 中实现相同的目标?
通过相关的问答,似乎转换为字符串的最佳 C++ 实践是
ostringstream stringStream;
stringStream << input_value; // let's say, input_value is a double
output_string = stringStream.str();
有没有办法在不到三行干净的 C++ 中实现相同的目标?
使用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);
是的,使用std::to_string:
output_string = std::to_string(input_value);
(对于 C++03,请查看boost::lexical_cast
)。
如果你没有 C++11,你可以使用类似的东西:
boost::lexical_cast<std::string>(input_value);
(如果您不想要 Boost,编写自己的 to_string 很容易 - 您实际上只是将现有代码包装在一个函数中)。
如果您确实有 C++11,请坚持使用std::to_string
已经提到的 Jesse Good 和 juanchopanza。
两者都是 C++ 11 中的单行代码:
std::string s1 = std::to_string(42);
和
std::string s2 = std::to_string(42.0);