Hallo!
Forum stimmt schon.
Zunächst einmal solltest du deinen Quellcode etwas aufräumen:
-Die Struktur hat einen sinnlosen Namen (man denkt da an komplexe Zahlen) und dieser scheint auch nicht in Übereinstimmung mit deiner Namenskonvention zu stehen,
-for-Schleife sieht so aus:
Das solltest du dir angewöhnen.
-if(Komma == 0): Dieser Fall kann nicht eintreten, da das if-else if-else-Konstrukt alles abdeckt. Also kannst du es entfernen.
-*"," ist sehr unverständlich, verwende statt dessen einfach ',' dann hast du direkt einen char-Typen.
-Die Einrückung ist unsauber
-Die Variable "Komma" erfüllt keinerlei Sinn, mach in der Schleife einfach das:
if(Eingabe[1] == ',')
{
// bla
}
else if(Eingabe[2] == ',')
{
// bla
}
else
{
// bla
}
Alles anzeigen
Wenn du nicht nur 1 und 2 sondern beliebige Stellen prüfen möchtest, solltest du std::string::find_first_of(',') sowie std::string::substr verwenden.
-"Monster[i][0] = int(Eingabe[0])" tut wahrscheinlich nicht das Gewünschte: Der ASCII-Code der Zahl in der Eingabe wird dann gespeichert. Wenn es nur von 0-9 gehen soll, mach es mit "Monster[i][0] = Eingabe[0] - '0'", das funktioniert dann. Doch ist dein Monster-Array auch eher unsauber. Eigentlich sollte es ein eindimensionales Array sein. Wenn du zwei Stellen haben möchtest, musst du einfach die erste mit 10 multiplizieren, z.B.:
-Die Funktion GetIntVal schreibst du besser so:
-Die Summe jedes Mal auf 0 zurückzusetzen ist eher ungeschickt.
Verrat mir vor allem, ob beliebig lange Zahlen verwendet werden können sollen.
Viele liebe Grüße
The User