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 beendenWenn 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
-
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.