Problem mit Ifstream / Ofstream



  • Ich probiere mit den beiden oben genannten Funktionen 2Dateien("Datei1";"Datei2") in einer void Funktion(void Öffnen) auszulesen bzw zu beschreiben:

    void Öffnen()
    {
    ifstream Input ("Datei1.dat",ios::binary);
    Input.close;
    ifstream Input ("Datei2.dat",ios::binary);
    Input.close;
    }

    (nicht Orginaler Quelltext)

    Jedoch spuckt der Compiler nur diese Fehlermeldung aus:

    "[...]error C2374: 'Input': Neudefinition; Mehrfachinitialisierung"

    Wie kann ich dies umgehen?



  • Programmierst du schon lange C++? 😉

    Du kannst im selben Block keinen Bezeichner mehrfach definieren. Such dir für den zweiten std::fstream einen anderen Variablennamen aus.

    P.S.: Bitte C/C++-Tags benutzen, also [cpp] und [/cpp].



  • danke

    Funktioniert!



  • Nexus schrieb:

    Programmierst du schon lange C++? 😉

    Du kannst im selben Block keinen Bezeichner mehrfach definieren. Such dir für den zweiten std::fstream einen anderen Variablennamen aus....

    Alternativ kann er auch 2 Blöcke aufmachen:

    void Öffnen()
    {
       {
          ifstream Input ("Datei1.dat",ios::binary);
          Input.close;
       }
       {
          ifstream Input ("Datei2.dat",ios::binary);
          Input.close;
       }
    }
    

    hilft manchmal, den Code übersichtlicher zu halten (wenn man die Variablen nur recht lokal braucht.



  • Wobei man das close natürlich weglassen kann.



  • Braunstein schrieb:

    Wobei man das close natürlich weglassen kann.

    Gegenüber Anfängern sollte man vorsichtig sein mit solchen Bemerkungen. 😉

    Besser man schreibt das close() , dadurch verliert man nichts. So denkt man auch in dem Fall daran, wo man eine Datei vor Blockende schliessen will.


Log in to reply