Leerzeile am Ende eines Datensatzes einfügen



  • Hallo!

    Ich habe eine list mit insgesamt etwa 600 Datensätzen. Die einzelnen Datensätze bestehen aus maps. Bevor ich nun einen Datensatz mit push_back ans ende der Liste einfüge würde ich diesem allerding gerne noch eine Leerzeile am Ende verpassen.

    Wenn ich erst bei der Ausgabe die Leerzeile eingüge kommt es in bestimmten Fällen dazu, das direkt 10 oder gar 20 Leerzeilen ausgegeben werden. Deshalb würde ich das gerne wie oben beschrieben lösen.


  • Mod

    Wie meinst du das, dass du einer map eine Leerzeile hinzufügen willst? Was für eine Art map ist das? Was soll das bringen? Beschreibe dein Problem mal ausführlich, am besten mit etwas (idealerweise auf das nötigste gekürzte aber trotzdem compilierbarem) Code an dem man das Problem nachvollziehen kann.



  • SeppJ schrieb:

    Wie meinst du das, dass du einer map eine Leerzeile hinzufügen willst? Was für eine Art map ist das? Was soll das bringen? Beschreibe dein Problem mal ausführlich, am besten mit etwas (idealerweise auf das nötigste gekürzte aber trotzdem compilierbarem) Code an dem man das Problem nachvollziehen kann.

    Also:

    Ein Eintrag des Datensatzes ist immer ne map vom typ std::string,std::string. Ein Datensatz hat mind. 3 und maximal 12 dieser Maps. Sobald ein kompletter Datensatz aus der Datei gelesen wurde (der Parser trifft eine Leerzeile an), wird er mit myList.push_back(myMap) an Ende der Liste gesetzt. Nun soll der Datensatz aber am Ende noch eine Leerzeile verpasst bekommen, damit man bei der Ausgabe erkennen kann wo ein neuer Datensatz beginnt (nämlich nach der Leerzeile).
    Wenn ich einfach alle Datensätze nacheinander ausgebe, ist es kein Problem die Leerzeile in eienr Schleife mit << endl; einzufügen. Ich habe aber außerdem noch eine Suche implementiert und innerhalb dieser kann es vorkommen, dass nur 3 der 4 Datensätze ausgegeben werden. In solchen Fällen wird aber trotzdem nach jedem Durchlauf der Suchschleife (auch wenn kein Datenstatz ausgegeben wurde) eine Leerzeile eingefügt. Da kommt es dann auch schon mal zu 50 Leerzeilen zwischen 2 ausgegebenen Datensätzen. Das will ich vermeiden.

    Hoffe nun ist mein "Problem" klarer 😉



  • Rogi schrieb:

    Hoffe nun ist mein "Problem" klarer 😉

    Ja. Aber dein Lösungsansatz ist Blödsinn. Gib doch einfach auch in der Suchschleife nur dann eine Leerzeile aus, wenn auch ein Datensatz ausgegeben wurde. Oder noch besser: Bau in der Funktion, die einen Datensatz ausgibt, die Ausgabe einer Leerzeile ein.



  • Das hätte ich ja auch gemacht wenn das so einfach wäre... Er soll ja aber nicht nach jeder ausgegebenen Map, sondern nur nach einem komplett ausgegebenen Datensatz eine Leerzeile einfügen. Das ist das Problem.

    Und da habe ich grade keine Ahnung wie ich das lösen soll 😕



  • Rogi schrieb:

    Das hätte ich ja auch gemacht wenn das so einfach wäre... Er soll ja aber nicht nach jeder ausgegebenen Map, sondern nur nach einem komplett ausgegebenen Datensatz eine Leerzeile einfügen. Das ist das Problem.

    Es muss doch eine Stelle im Code geben, wo du durch die Maps eines Datensatzes läufst, um sie auszugeben, oder?



  • gelöst



  • Füg einfach hinter der Schleife eine Ausgabe ein 😕


Anmelden zum Antworten