kuriose veränderung eines eingelesenen wertes
-
hallo zusammen
ich lese für mein programm aus einer datei werte ein. dies sieht so aus:
iflevel.getline(temp, 10000); //1. zeile einlesen while(!iflevel.eof()) { if(string(temp).find("#name") != string::npos) { iflevel.getline(temp, 10000); daslevel.levelname = temp; logschreiben(daslevel.levelname, true); } [...] iflevel.getline(temp, 10000); //eof erst, wenn darüber hinausgelesen }
die if-abfrage funktioniert wunderbar, es wird genau einmal der korrekt eingelesene levelname in das log geschrieben. nach ablauf der while-schlaufe (OHNE, dass jemals in irgendeiner weise auf die variable daslevel.levelname zugegriffen wird!) steht jedoch der wert der letzten zeile der textdatei in der variable.
was habe ich da bloss übersehen?
vielen dank für jegliche tips
-
lösung gefunden:) daslevel.levelname ist n char* und kein string......
-
eine erleichterung wäre vielleicht:
string temp; getline(cin,temp); //etc
dann hast du die zeile gleich in einem string und größenbeschränkung der zeile gibt's auch nicht mehr
dann kannst du daslevel.levelname auch in nen string ändern