使用std::stringstream
。它的operator <<
对于所有内置类型都是重载的。
#include <sstream>
std::stringstream s;
s << "(" << c1 << "," << c2 << ")";
storedCorrect[count] = s.str();
这就像你所期望的 - 打印到屏幕std::cout
以同样的方式。你只是“打印”到一个字符串。 operator <<
的内部负责确保有足够的空间并进行必要的转换(例如,double
至string
)。
此外,如果您有Boost库,您可以考虑查看lexical_cast
。语法看起来很像普通的C++ - 风格的转换:
#include <string>
#include <boost/lexical_cast.hpp>
using namespace boost;
storedCorrect[count] = "(" + lexical_cast<std::string>(c1) +
"," + lexical_cast<std::string>(c2) + ")";
引擎盖下,boost::lexical_cast
,基本上是做我们与std::stringstream
做同样的事情。使用Boost库的一个关键优势是您可以轻松地以其他方式(例如,string
到double
)。没有更多的与atof()
或strtod()
和原始的C风格的字符串搞乱。
如何从以下的一些例子:http://www.codeproject.com/KB/recipes/Tokenizer.aspx他们是非常有效的,有点优雅。 – 2010-11-02 05:03:53
http://stackoverflow.com/q/29200635/395461 – Shannon 2015-03-22 23:20:58