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


Anmelden zum Antworten