Struktur in for-Schleife
-
(Sorry wegen Doppelpost)
Also ungefähr so: Ich lese per ifstream eine Datei ein. Durchsuche sie mit find() und will dann (wenn was gefunden worden ist), das nebenstehende in einen Vector speichern und weitersuchen, bis die Datei durch ist.
-
Du darfst den Rückgabewert von
Line.find()
nicht implizit in einenbool
konvertieren lassen! Genau das tust du aber, indem du den Ausdruck in diewhile
-Schleifenbedingung setzt. Das gibt immertrue
zurück, wenn es nicht an 0-ter Stelle gefunden wird.Richtig wäre, bei nicht gefundenem Element auf
std::string::npos
zu prüfen:while (Line.find("asd") != std::string::npos)
Zudem würde ich an deiner Stelle Initialisierungslisten im Konstruktor benutzen. Rückgabe von
const
-qualifizierten Objekten ist bedingt sinnvoll. Und Casts brauchst du eigentlich auch nicht so viele.
-
Ok vielen Dank! Jetzt lädt das Programm und ich bekomme (wenigstens) eine Fehlermeldung:http://img190.imageshack.us/i/unbenanntajn.jpg/
Wie man aus der Fehlermeldung lesen kann, muss irgendwas an meiner Vector Initialisierung falsch sein. Ich kann aber irgendwie keinen Fehler sehen
.
-
adelholzener schrieb:
Wie man aus der Fehlermeldung lesen kann, muss irgendwas an meiner Vector Initialisierung falsch sein. Ich kann aber irgendwie keinen Fehler sehen
.
Wohl eher, dass du über den gültigen Bereich des std::vector hinausschreibst oder -liest. Kann ja eigentlich nur diese Zeile sein, soweit ich das sehe:
return (static_cast<unsigned int> (Position) + 1 > Vec.size() ? "" : Vec[Position] );
-
Ich hab nich alles genau gelesen, aber sollte noch nich gekommen sein, hoffe ich ^^
std::string Zeilen(const std::string &Zeile, std::size_t Position) { std::stringstream sb(Zeile); for(std::string R; sb >> R; --Position) { if(!Position) return R; } return ""; }
bb
-
Danke, habe den Code mal ersetzt, hat sich aber leider nichts geändert (es kommt die gleiche Fehlermeldung).
-
Anhand des Callstacks (Aufrufliste) solltest du doch sehen können, in welcher Zeile der Fehler auftritt.
-
Die Liste ist leer. Entweder habe ich Visual C++ falsch eingestellt oder da steht wirklich nichts.
-
adelholzener schrieb:
Die Liste ist leer. Entweder habe ich Visual C++ falsch eingestellt oder da steht wirklich nichts.
Hast du auch den Debug-Build (nicht Release) erstellt?
-
Ok habe es geschafft! Danke!