fstream hat Angst sich zu zeigen^^



  • Nunja, dass Problem ist nun, wie ich gerade feststellte, dass ich keine
    anderen Parameter an die Methode übergeben darf, weil diese automatisch
    erkannt wird. Denn eigentlich ist diese Methode dazu da, um ein Model
    zu laden, und deswegen kennt LoadModel nur Filename =(.



  • Gebangt schrieb:

    Nunja, dass Problem ist nun, wie ich gerade feststellte, dass ich keine
    anderen Parameter an die Methode übergeben darf, weil diese automatisch
    erkannt wird.

    Es wäre wirklich sehr hilfreich, wenn du dich ein bisschen klarer ausdrücken könntest. Ich hab nämlich keine Ahnung, was du damit meinst.

    Wenn kein Objekt übergeben werden darf (aus welchem Grund auch immer), kannst du es ja in der Klasse speichern.



  • #include <fstream> // header einbinden
    //... andere includes und evtl andere definitionen der Klasse
    void Klasse::Lade(char const * dateiname)
    {
        std::ifstream eingabe(dateiname /*, std::ios_base::binary */); //auskommentieren wenn binär daten gelesen werden sollen 
        // arbeite mit eingabe.
    };
    


  • Erstmal Danke an alle. Es handelt sich um ein MD2-Modelloader.
    @Evilissimo
    Das Problem ist, hier kennt er (i)fstream schon garnicht mehr, aber
    naja, hier mal Code:

    bool LoadModel(const char* szFilename); //Methodendeklarierung
    

    Hier der Aufruf:

    bool CMD2Model::LoadModel(const char* szFilename)
    {
    
    	std::ifstream ModelFile;
    
    	if(ModelFile.fopen( szFilename,"rt")
    	{
    		return false;
    	}
    /...blablabla...Datei wird durchforstet...
    }
    


  • Wo liegt das Problem? Wenn fstream dort nicht bekannt ist, mach es eben bekannt...

    Und ausserdem wurde dir schon gesagt, dass fstream keine Methode namens fopen() hat. Es ist ehrlich gesagt ziemlich mühsam, dir zu helfen, wenn du erstens nicht tust, was in den Antworten empfohlen wird und zweitens dich nie klar ausdrückst und dich strikt weigerst, den Fehler zu erwähnen... 🙄



  • ...

    edit: ach mist - nexus war ma wieder schneller ^^



  • unskilled schrieb:

    edit: ach mist - nexus war ma wieder schneller ^^

    Sogar so schnell, dass er noch gesehen hat, dass das Gleiche bereits vor dem Edit dastand :p



  • Nexus schrieb:

    unskilled schrieb:

    edit: ach mist - nexus war ma wieder schneller ^^

    Sogar so schnell, dass er noch gesehen hat, dass das Gleiche bereits vor dem Edit dastand :p

    joar, habs scho beim vorschau klicken gesehen ^^ und da ich schnell nur mit einem l geschrieben hab, hab ichs dann halt so gemacht : D
    hier kann man aber au gar nix verheimlichen ><

    bb ^^



  • Kleiner denkfehler, hab da was mit fstream vertauscht, hab's jetzt
    mit der stdio.h-Library *goldzahn*.
    Lösung:

    FILE* ModelFile;
    
    	if(ModelFile=fopen(szFilename,"rb"))
    	{
    		return false;
    	}
    

    Und da fstream keine fopen's kennt, ging ja auch wohl schlecht
    ModelFile.fopen^^. Naja, jetzt haben wir's ja, vielen Dank Leute.



  • Gebangt schrieb:

    Naja, jetzt haben wir's ja, vielen Dank Leute.

    Ja, aber auch nur, wenn du C programmierst. fopen() sowie auch der Header <stdio.h> sind nicht C++, fstream und der gleichnamige Header hingegen schon. fstream hat auch eine Methode zum Öffnen, nur heisst die open() . Zu dieser würde ich dir auch raten, wenn du C++ benutzt.

    Und wenn du die C-Bibliotheken in C++ nutzen willst, heisst der Header <cstdio>.


Anmelden zum Antworten