fstream Problem in Funktionen



  • hi Leute

    Ich habe ein kleines Problem.

    In meiner main Funktion öffne ich eine Datei um etwas hineinzuschreiben, also mit:

    ofstream AusgabeDatei(AusgabeDateiname);
    

    Nun möchte ich eine Funktion schreiben in der ich sozusagen die AusgabeDatei mitgebe damit dort was reingeschrieben werden kann, also etwas so:

    void Meine Funktion(string IrgendEinSTring, ofstream AusgabeDatei)
    {
        AusgabeDatei << "Schreibe das da bitte hinein";
    }
    

    Allerdings habe ich keinen Plan wie ich den Funktionskopf deklarieren muß! Also das da nicht ofstream stehen bleiben darf ist klar, aber was muß ich denn da genau schreiben?

    Gruß Tobi



  • void func(const string& data,ofstream& ausgabe)
    {
      //...
    }
    

    (btw, der Name "Meine Funktion" ist schon kein gültiger C(++) Bezeichner)



  • Ups, meine Funktion sollte eigentlich zusammen sein.

    Ok das mit dem & funktioniert. Ich habe vorher sehr viel mit Pascal und Delphi gearbeitet, ist dieser und Operator äquivalent zum "var" Operator bei Pascal, also sozusagen das Thema "call by refernece"?

    Gruß Tobi



  • Ja, der ist in etwa äquivalent (absulut identisch dürfte er nicht sein). "T& x=y;" deklariert x als Referenz (Alias) auf eine andere Variable y.

    (btw, "const string&" ist auch eine Referenz - nur daß du damit den Parameter nicht ändern darfst. Das wird vor allem für Objekt-Parameter verwendet, um Kopieroperationen zu sparen - einen String per Wert zu übergeben ist etwas aufwendiger)


Anmelden zum Antworten