txt-Dateien lesen



  • Hallo zusammen,

    ich soll ein Programm schreiben, in dem ein Prim-Algorithmus berechnet wird. Dazu soll eine txt-Datei mit dem entsprechenden Digraphen eingelesen werden. Das und der Algorithmus an sich funktionieren auch. Ich hab ein kleines menu eingebaut, quasi nach dem Motto:
    1 - Datei einlesen
    2 - Programm beenden

    Wenn der Algorithmus durchgelaufen ist, kommt wieder das menu. Wenn ich jetzt aber wieder eine txt-Datei öffnen will, funktioniert das nicht mehr bzw. er sagt:

    cout<<"\n Dateiname (..txt): "; cin>> filename;
    datei1.open(filename, ios::in);

    if(!datei1)
    {
    cout<<"\n Datei "<<filename<<" konnte nicht geoeffnet werden"; break;
    }

    Jemand ne Idee woran das liegen kann? Bin für jede Hilfe dankbar!
    Grüße


  • Mod

    Das Einlesen von Dateinamen tut man mit getline , nicht mit dem Extraktionsoperator >> , denn der liest nur Zeichen bis zum nächsten Whitespace.

    Außerdem sollte man Dateistreams immer direkt initialisieren. Also nicht open verwenden, sondern den Konstruktor:

    getline(cin, filename);
    ifstream stream(filename);
    

    Das löst auch wahrscheinlich dein Problem, denn es besteht sicherlich darin, dass du den Filestream nicht schließt bevor du ihn erneut öffnest.
    Stattdessen, erstelle in jedem durchlauf einen neuen Filestream.


Log in to reply