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);
    

Anmelden zum Antworten