を使用し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 スタイルの文字列をいじる必要はもうありません。