Schwierigkeiten bei meiner einlese-Methode



  • Hallo liebes C-plusplus-forum,
    ich bin Neuling beim C++ programmieren und hab da ein Problem bei dem ihr mir hoffentlich weiterhelfen könnt.
    Unzwar hab ich eine Methode geschireben die aus eine .txt datei einlesen soll und dann die Informationen konvertieren soll.
    Die konvertierten Daten sollen dann in einem Vector gespeichert werden.
    Leider wird irgendwie jede zweite zeile die ich einlese nicht konvertiert...

    Hier mal mein Code

    while (!inputstream.eof()) {
                getline(inputstream, firma_);
                getline(inputstream, datum_, ';');
                getline(inputstream, umsatz_0, ';');
                getline(inputstream, gewinn_0, ';');
                getline(inputstream, bilanzsumme_0, ';');
                getline(inputstream, eigenkapital_0);
    

    und hier mal ein Ausschnitt aus der konvertierung

    stringstream umsatz_temp(umsatz_0), gewinn_temp(gewinn_0), bilanzsumme_temp(bilanzsumme_0), eigenkapital_temp(eigenkapital_0);
                umsatz_temp >> umsatz_;
                gewinn_temp >> gewinn_;
                bilanzsumme_temp >> bilanzsumme_;
                eigenkapital_temp >> eigenkapital_;
    

    das ist für ein Projekt an der Uni... an sich läuft alles gut nur das halt jede zweite zeile nicht konvertiert wird.

    Ich hoffe ihr könnt mir weiterhelfen, kann auch (auf wunsch) den ganzen Code posten.

    Erfürchtige Grüße
    Fune



  • Fune schrieb:

    Leider wird irgendwie jede zweite zeile die ich einlese nicht konvertiert...

    Und das äußert sich wie?
    Woher weißt du, dass die Zeilen "eingelesen" (was heißt das?) wurden?



  • Vielen dank für die antwort mani66,
    ich habe eine Methode geschrieben die den inhalt meines Vectors ausgibt.
    Da sieht man das jede 2te Zeile Format ist wie sie im .txt file ist.
    Einlesen heißt der Prozess der die daten aus der .txt datei liest (sorry ich weiß nicht so ganz wie ich die frage beantworten soll 😞 ).



  • Um dir helfen zu können, wäre es hilfreich beispiel Daten zu haben. Desweiteren solltest du ein kompilierbares Minimalbeispiel posten damit sich die Leute die dir helfen wollen mit dem Problem befassen können...



  • Also weißt du nicht, ob die Daten überhaupt korrekt gelesen wurden. Dann setzt du dich mal mit dem Debugger in die while-Schleife und prüfst nach, was denn jedes einzelne getline liefert.

    Merkwürdig finde ich auf jeden Fall, dass das erste und letzte getline '\n' sucht, während die anderen ';' suchen. Aber ohne das Datenformat zu kennen kann man dazu nichts weiter sagen.



  • Hi, also das letzte getline() soll bis zum zeilenende gehen und dann soll das erste getline in die nächste zeile gehen.
    Ich geh nochmal mit dem Debugger rein und schreibe wenn ich da was neues entdeckt habe.



  • Hey liebes Forum,
    ich hab den Fehler jetzt entdeckt!! Unzwar hab ich einen Fehler bei meiner while-schleife gemacht.
    In der .txt file ist die Struktur so:
    Fimra
    Datum, Umsatz, Gewinn, EK
    Datum, Umsatz, Gewinn, EK
    Datum, Umsatz, Gewinn, EK
    Firma
    Datum, Umsatz, Gewinn, EK
    usw.

    if (inputstream.good()) {
            while (!inputstream.eof()) {
                getline(inputstream, firma_);
                for (int i = 0; i <= 4; i++) 
                {
                    getline(inputstream, datum_, ';');
                    getline(inputstream, umsatz_0, ';');
                    getline(inputstream, gewinn_0, ';');
                    getline(inputstream, bilanzsumme_0, ';');
                    getline(inputstream, eigenkapital_0);
    

    jetzt funktionierts ^^ Danke für die Hilfestellung nochmal
    🙂


Anmelden zum Antworten