eine Reihe von Problemen mit Ihrem Code Es gibt keine.
Sie ans
innerhalb der Schleife deklarieren, so wird erstellt und auf jeder Schleife Iteration zerstört. Wenn Sie möchten, dass die Schleife 5 Zahlen an ans
anfügt, müssen Sie sie stattdessen außerhalb der Schleife deklarieren.
std::to_string()
gibt einen neuen std::string
als Rückgabewert aus. Es verwandelt den Eingabewert nicht "magisch" in einen Stringtyp, wie es von Ihrem Code angenommen wird. Sie hängen die zurückgegebene Zeichenfolge überhaupt nicht an ans
an.
=+
ist kein gültiger Append-Operator. Es wird als separate Operatoren =
und +
interpretiert. std::string
hat keinen Operator =
, der eine int
als Eingabe nimmt und keinen unären Operator +
hat. Sie müssen stattdessen den Operator +=
verwenden.
Try this:
#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...
Alternativ verwenden std::ostringstream
statt std::to_string()
:
#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...
Mit gesagt, dass Sie C++ 11 deutlich mit (wenn std::to_string()
eingeführt wurde) oder später, also sollten Sie einen C++ - Zufallszahlengenerator anstelle desjenigen von C verwenden, zB:
#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);
...
}
Sie sind in der Nähe, aber Sie wollen 'ans + = to_string (num);'. –
Bitte zeigen Sie echten Code anstelle dieses offensichtlich gefälschten Codes, der möglicherweise nichts Substanzielles anzeigen kann, da es hier keine einzige Codezeile gibt, die den Wert von ans anzeigen könnte, den Sie vorgeben zu sehen. Außerdem wird der Wert von "ans" bei jeder Iteration der Schleife zerstört.Das einzige, was Sie als Antwort auf gefälschten Code bekommen, sind gefälschte Antworten. –
Viele Probleme zuerst 'to_string (num)' tut nichts, es sollte sein 'ans + = to_string (num)' auch 'ans' sollte vor der if-Anweisung sein. –