Operator >> Dateinamen übergeben



  • Hallo,

    ich habe für meine Klasse den Operator ">>" überladen, um eine Datenstruktur anzulegen. Der Algorithmus funktioniert auch soweit.

    Jedoch weiß ich nicht, wie der Operator ">>" aufzurufen ist. Ich dachte, daß ich ein neues Objekt meiner Klasse aufrufe und dann die Datei mit dem Operator >> angebe. Also ungefähr so:

    TriaObj* Punktemenge = new TriaObj();
    "cube.dat" >> Punktemenge;
    

    Allerdings sagt der Compiler, daß es ungültige Operanden des Typs const char[9] wären. Wie müßte ich den Dateinamen richtig übergeben?

    Hier nochmal der Aufruf zum Überladen:

    istream& operator>> (istream& datei, TriaObj &aktuellesTriaObj)  {
    
        string substring = "";
        string temp = "";
        if (datei) {
            ostringstream c;
            //Einlesen der doofen Daten
                c << datei.rdbuf();
                //cout << c << endl;
    
                temp += c.str();
        }
    //hier der weitere Teil mit dem Einlesen, der auch funktioniert, also Zerlegen 
    //des erhaltenden Strings aus der Datei für die Datenstruktur
    //es wird also mit dem String temp weitergearbeitet
    //und der istream nicht weiter angefasst
    
    //Vertices in der Datei finden, um einen Anfang zu haben
        int pos = temp.find("Vertices:", 0);
        cout << pos << endl;
        //String nach der Klammer "{" in substring kopieren
        substring = temp.substr(pos + 10, temp.length());
        //Debug
        cout << "Substring: "<< substring << endl;
    
    }
    

    Vielen Dank für eure Mühe schon mal im Voraus.

    Gruß,

    Tobias



  • std::ifstream istr;
    istr.open("egal.txt");
    if(istr.is_open()) istr >> Punktemenge;



  • Hallo,

    vielen Dank schon mal für die Hilfe.
    Bis jetzt hatte ich es auch so. Allerdings möchte ich den Dateinamen allgemein halten, da ich ihn als Parameter übergeben möchte. Ist das auch möglich?
    Müßte ich es als String oder char übergeben?

    Gruß,

    Tobias




Log in to reply