Prüfung ob Datei geöffnet werden konnte funktioniert nicht
-
Hallo,
ich möchte eine Datei einlesen, vor dem einlesen prüfe ich ob die Datei
überhaupt existiert bzw. ob sie richtig geöffnet werden konnte. Genau an
Stelle ist nun mein Problem, wenn ich einen falschen Pfad/Dateiname
eingebe springt er nicht in die if-Abfrage hinein und gibt mir den Text aus, sondern geht gleich an das Ende.#include <iostream.h> #include <fstream.h> #include <conio.h> #include <stdlib.h> void main(void) { char erg_dat[81]={0}; char pfad[80]={0}; cout << endl << "Pfad: "; cin >> pfad; //**** Datei Oeffnen ************************************************ ifstream eingabedatei; eingabedatei.open(pfad); if(!eingabedatei) // Abfrage Datei Oeffnen { cout << "Fehler beim Oeffnen der Datei !"; cin.get(); } //**** Ausgabe der Datei ******************************************** while(eingabedatei.getline(erg_dat,80)) cout << erg_dat << endl; eingabedatei.close(); // Datei schliessen cin.get(); return; }
Vielleicht kann mir jemand von euch helfen.
Danke
-
if(eingabedatei.fail()) { //...
-
Geht leider auch nicht
"if(eingabedatei.fail())"
er springt immer noch an das Ende.
-
if(!eingabedatei.is_open())
-
n.T.
-
#include <iostream> // ohne .h #include <fstream> // ohne .h
Wenn es dann immer noch nicht geht, teil uns doch mal mit, welchen Compiler du benutzt. Ein Wunder das es überhaupt mit .h bei dir funktioniert.
-
Meines Wissens nach wird die Datei automatisch erstellt, einen Fehler gibts nur, wenn die Datei nicht geöffnet/erstellt werden konnte. Kann sein das es ein flag gibt, das das verhindert...
-
ness schrieb:
Meines Wissens nach wird die Datei automatisch erstellt, einen Fehler gibts nur, wenn die Datei nicht geöffnet/erstellt werden konnte. Kann sein das es ein flag gibt, das das verhindert...
eingabedatei.open(pfad, ios::in | ios::nocreate, filebuf::openprot);