使用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