(FSTREAM) Einzulesende Datei soll vom Benutzer eingegeben w.
-
Leider fand ich nichts in der Suchfunktion
unseres Forums.Der Benutzer soll eingeben, welche Datei
eingelesen werden soll.fstream f; f.open("Test.dat", ios::in);Das oben zitierte nur so gestalten, dass der
Nutzer beispielsweise Test.dat selbst eintippen
soll.Folgende Variante funktioniert nicht:
string name; cin >> name; fstream f; f.open(name, ios::in);
-
f.open(name.c_str(), ios::in);
-
Funktioniert nicht ist zwar keine Fehlerbeschreibung, aber es liegt wohl daran das ein fstream keinen string entgegennimmt, sondern nur char const*, und den erhältst du bei einem string mit c_str():
ifstream f(name.c_str());Statt open, habe ich die Argumente mal direkt an den Konstruktur übergeben, der öffnet die Datei sofort. Und außerdem hab ich fstream zu ifstream geändert. So spart man sich das ios::in (ifstream öffnet eine Datei immer lesend).
Greetz
-
Danke, ihr 2..
Nutzte Hu's Version und es funktionierte.

-
Apropo fstreams, das passt ja hier rein^^
Kan man auch irgentwie prüfen ob eine Datei eines fstreams Komplet leer ist?
Falls ja wie, weil ich finde da irgentwie nichts.
-
Mikrofon schrieb:
Danke, ihr 2..
Nutzte Hu's Version und es funktionierte.

Die ifstream Variante ist aber sprechender und sollte daher vorgezogen werden..
@Wikinger75:
Öffnest die Datei und liest mal ein. Wenn gleich eof gesetzt ist, dann ist die Datei wohl leer.