Probleme mit fstream



  • Hallo!

    Ich möchte einfach nur testen, ob eine Datei vorhanden ist, und wenn nicht, eine neue erstellen:

    dataBaseFile.open("DataBase.dbf", std::ios::in);
    
    	if(!dataBaseFile)
    	{
    		dataBaseFile.clear();
    		dataBaseFile.close();
    		dataBaseFile.open("DataBase.dbf", std::ios::out);
    
    		// Hier wieder fail(), aber warum?
    
    		dataBaseFile.close();
    		dataBaseFile.open("DataBase.dbf", std::ios::in);
    	}
    
    	// Leseoperationen
    
    	dataBaseFile.close();
    

    Aber warum ist der stream nach dem zweiten open() fehlerhaft? Das vermasselt mir glaube ich auch das problem mit dem release mode... ( http://www.c-plusplus.net/forum/viewtopic-var-t-is-180361.html ). Im debug mode funktioniert alles, aber im release funzt der stream nicht richtig (Weil die Fehler anders/garnicht behandelt werden? Keine Ahnung!.....)

    MfG



  • Ich habs nicht ausprobiert, aber versuch mal erst close und dann clear. Wenn Du clear machst, wird zwar das goodbit gesetzt, aber wenn du danach ein close auf ein ungültiges Objekt versuchst, wird bestimmt wieder das failbit gesetzt. Beziehungsweise: warum machst du ein close, wenn die Datei vorher eh nicht geöffnet werden konnte?



  • ceplusplus@loggedoff schrieb:

    Ich möchte einfach nur testen, ob eine Datei vorhanden ist, und wenn nicht, eine neue erstellen:

    Letzer Abschnitt: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html



  • Artchi schrieb:

    Beziehungsweise: warum machst du ein close, wenn die Datei vorher eh nicht geöffnet werden konnte?

    Weil ich ein "noob" bin 😉 Nicht nachgedacht... Bessergesagt keine Ahnung von der std-lib. Danke!

    @KasF

    Danke!

    MfG


Anmelden zum Antworten