。
ans
をループ内に宣言しているため、ループの繰り返しごとに作成され、破棄されます。ループで5つの数字をans
に追加する場合は、代わりにループの外に宣言する必要があります。
std::to_string()
は、戻り値として新しいstd::string
を出力します。あなたのコードが想定しているように、入力値を文字列型に「魔法のように」変換することはありません。返された文字列をans
に一切追加していません。
=+
は有効な追加演算子ではありません。別の演算子=
と+
と解釈されます。 std::string
には演算子がありません。これは入力としてint
を持ち、単項演算子+
を持ちません。代わりに+=
演算子を使用する必要があります。
これを試してみてください:
は
#include <string>
#include <iostream>
std::string ans;
for (int a = 0; a < 5; ++a)
{
int number = ...
...
ans += std::to_string(number);
}
// use ans as needed...
また、std::to_string()
の代わりにstd::ostringstream
を使用する:あなたが明確に使用している、と述べたことで
#include <string>
#include <sstream>
#include <iostream>
std::ostringstream oss;
for (int a = 0; a < 5; ++a)
{
int number = ...
...
oss << number;
}
std::string ans = oss.str();
// use ans as needed...
C++ 11(std::to_string()
を導入した場合) Cの乱数ジェネレータの代わりにC++乱数ジェネレータを使用する必要があります。
#include <random>
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 9);
for (int a = 0; a < 5; ++a)
{
int number = dis(gen);
...
}
あなたは終わっていますが、 'ans + = to_string(num);'が必要です。 –
あなたが見ていると主張している 'ans'の値を表示できるコードはここには1行もないので、実際に何かを表示することができない、この明らかに偽のコードではなく、実際のコードを表示してください。さらに、 'ans'の値はループの繰り返しごとに破棄されます。あなたが偽のコードに反応して得られるのは、偽の答えだけです。 –
多くの問題はまず 'to_string(num)'は何もしません。 'ans + = to_string(num)' 'ans'はif文の前にあるべきです。 –