Datei Öffnen



  • Hallo,
    in meinem C++ Buch steht folgendes:

    ifstream quelle;
    string quelldateiname;
    cin>>quelldateiname;
    quelle.open(quelldateiname.c_str(), ios::binary||ios::in);
    ...
    string zieldateiname;
    cin >> zieldateiname;
    ofstream ziel(zieldateiname..c_str(), ios::binary||ios::in);
    ...
    

    Wieso steht bei dem ziel stream kein .open? Heißt das, dass die Datei erzeugt wird? Und was passiert, wenn man eine Datei angibt, die schon existiert?



  • Weil die Datei im Konstruktor von ostream steht. Wenn eine Datei existiert, wird sie überschrieben. Willst du neuen Text an den existierenden Text der Datei anhängen, musst du ios::app nehmen.
    Liege ich richtig in der Annahme, das "ios::binary||ios::in" falschen Syntax enthält und durch "ios::binary | ios::in" ersetzt werden müsste?



  • Und wieso kann man das .open einfach weglassen. || war ein Tippfehler von mir im Buch steht|



  • Öffner schrieb:

    Und wieso kann man das .open einfach weglassen. || war ein Tippfehler von mir im Buch steht|

    Hat er dir im ersten Satz beantwortet 😉 Wenn du die open-parameter beim Konstruktor angibst öffnet der die Datei.



  • Ah ok also hätte man auch:

    quelle(quelldateiname.c_str(), ios::binary||ios::in);
    

    schreiben können.



  • Ja, aber immernoch dem Datentyp "ifstream" und einem | (Bit-Oder) anstatt zwei (Logischer Oder operator).


Anmelden zum Antworten