file opened?



  • ich habe folgendes problem: ich prüfe, ob eine datei erfolgreich geöffnet wurde(somit will ich feststellen ob sie existiert), aber ich kriege immer falsche ausgaben:

    ...(string path){
    fstream file(path.c_str());
    if(file.good() != 0){
    file.close();
    return false;
    }
    if(file.fail() == 0){
    file.close();
    return false;
    }
    if(file.bad() == 0){
    file.close();
    return false;
    }
    else{
    cout << "Successful\n";
    file.close();
    return true;
    }
    }

    nun müsste ich doch so rausfinden ob die datei existiert:

    if(function("...") == true){
    ...
    }

    Aber ich kriege bei jeder Ausgabe successful hingeschmettert.

    Woran liegt das?



  • Hat sich erledigt. 0 ist wohl nicht immer true.



  • moppi schrieb:

    Hat sich erledigt. 0 ist wohl nicht immer true.

    false ist immer 0 und true ist ungleich false.

    Aber deine Aktion lässt sich auch etwas vereinfachen:

    #include <fstream>
    
    int main() {
      ifstream ifs("test.txt");
      if (!ifs)  //Konnte Datei geöffnet werden? Wenn nicht, abbrechen.
        return 1;
    
      //Lesen...
    
      ifs.close();
      return 0;
    };
    

    MfG

    GPC



  • mein spruch war eher ironisch gemeint 🙂


Anmelden zum Antworten