std::stoi
http://en.cppreference.com/w/cpp/string/basic_string/stol
std::invalid_argument if no conversion could be performed
Daher könnte z.B. die Exception kommen.
Woher der "ESP" Fehler kommt kann ich so ohne Weiteres nicht sagen.
Vielleicht weil fGroupName nie "ok" zurückliefert, daher die Schleife nie abgebrochen wird, daher iii >= 50 wird und daher die Bounds des Arrays nGroupName überschritten werden? Und du dir dadurch den Stack zerschiesst.
Irgendwas in dieser Art vermutlich.
Du musst auf jeden Fall sicherstellen dass dein Programm, egal was für Input es bekommt, keinen Mist baut. Wenn Mist als Input daherkommt, dann musst du halt irgendwie kontrolliert abbrechen.
Einfach Daten einlesen bis irgend eine Markierung erkannt wird, und dann hoffen dass es nicht mehr als 50 Einträge werden, ist halt keine gute Lösung.
Katharsis schrieb:
Allerdings arbeite ich viel mit fstream, und wenn der Debugger läuft (oder das Programm "aus dem IDE heraus" gestartet wird), speichert/liest er nicht aus den Textdateien (sondern eben nur, wenn ich die Release *.exe starte). Könnte daher der Fehler kommen? Quasi, dass er aus einem nicht vorhandenen string versucht, diesen in einen integer umzuwandeln?
Ja klar kann daher der Fehler kommen, siehe oben.
Erstmal solltest du sicherstellen dass auch in so einem Fall dein Programm nicht einfach abkackt.
Und dann solltest du das Programm so anpassen dass es auch im Debug-Mode das richtige Textfile aufmacht. z.B. indem du einen absoluten Pfad verwendest, das Working-Directory im Debugger passend einstellst oder einfach das Textfile dort hinkopierst wo das Programm es erwartet wenn es auf dem Debugger gestartet wird.
Macht ja schliesslich wenig Sinn wenn du das Programm im Debugger (nur) unter ganz anderen Bedingungen testest als die unter denen es dann laufen soll.