Fehler bei Anfügen an String



  • Ich habe folgendes Problem und ich kapiere es einfach nicht:

    Ich habe folgende Datei, die ich einlese:
    seq_a Maus Affe Elefant Katze
    seq_b Erdbeere Banane Apfel

    Vogel Wurm Kaefer
    Birne Pflaume Zitrone

    Diese lese ich Zeilenweise ein und breche sie in Teilstrings auf (siehe unten in der Ausgabe unter teilstrings)
    Anschließend möchte ich diese Begriffe alle hintereinanderfügen in einen String. (Gut, einmal für jeweils die erste und einmal für die zweite Zeile (also Tiere und Obst getrennt), aber das funktioniert auch)
    Für eine Zeile klappt das auch wunderbar, aber die Folgezeile wird einfach an den Beginn des Strings geschrieben und überschreibt den vorherigen. (siehe Ausgabe "nach hinzufuegen").

    teilstrings:
    Vogel
    Wurm
    Kaefer

    vor hinzufuegen
    MausAffeElefantKatze

    nach hinzufuegen: Vogel
    VogelffeElefantKatze

    Mein Code sieht wie folgt aus:

    //einen Absatz weiter springen
    	for (zeilenzaehler=anzahl_sequenzen + 2; zeilenzaehler <vector_multiples_alignment.size(); zeilenzaehler++)
    	{
    		//Im Absatz die Sequenzen abarbeiten
    		for (int sequenzzaehler = 0; sequenzzaehler < anzahl_sequenzen; sequenzzaehler++) //für jede Sequenz...
    		{
    			zeile.clear();
    			teilstrings.clear();
    			zeile = vector_multiples_alignment[zeilenzaehler];
    			teilstrings = string_splitten(zeile);
    
    			cout<<"teilstrings"<<endl;
    			for (int i=0; i<teilstrings.size(); i++)
    			{
    				cout<<teilstrings[i]<<endl;
    			}
    			cout<<endl;
    			for (int i=0; i<teilstrings.size(); i++)		//alle Sequenzfragmente einer Zeile anhängen
    			{  
    				cout<<endl<<"vor hinzufuegen  "<<endl;
    
    				cout<<v_name_sequenz[sequenzzaehler].sequenz<<endl;
    				//Teilstring[i] anfuegen
    				v_name_sequenz[sequenzzaehler].sequenz = v_name_sequenz[sequenzzaehler].sequenz + teilstrings[i];
    				//v_name_sequenz[sequenzzaehler].sequenz += teilstrings[i];
    
    				cout<<endl<<"sequenz nach hinzufuegen:  "<<teilstrings[i]<<endl;
    				cout<<v_name_sequenz[sequenzzaehler].sequenz<<std::endl;
    
    			}
    			zeilenzaehler++; //kein Problem wegen der Leerzeile zwischen den Absaetzen
    			cout<<endl<<endl;
    		}
    
    	}
    

    Was mache ich bloß falsch???



  • Hat sich erledigt,

    Es funktioniert zwar nicht in der Shell, aber auf wundersame Weise, wenn man den String in eine Datei ausgibt!
    Warum weiß der Himmel...


Anmelden zum Antworten