Problem mit fstream



  • Hallo,
    ich möchte mit fstream eine datei einlesen was bisher auch immer funktioniert hat (unter windows) aber wenn ich das Programm auf linux starte kann fstream die datei nicht öffnen. Es wird keine fehler angezeigt nur die is_open() funktion gibt false zurück. kann mir da jemand helfen?

    Gruß darman96

    Edit:

    hier der code:

    fstream filestream;
        string line;
        int faceNum = 0;
    
        filestream.open("home/erik/Dokumente/block.obj");
    
        if(!filestream.is_open()) {
    
            return 0;
    
        }
    


  • Meinst du wirklich home oder eher /home ?
    Außerdem: Nimm ifstream zum Lesen.



  • muss vor das home auch nen /?
    und nochwas wenn ich ne string variable übergebe krieg ich nen fehler.


  • Mod

    darman96 schrieb:

    muss vor das home auch nen /?

    Wenn du das Verzeichnis home meinst, welches im Rootverzeichnis / liegt, dann ja. Wenn du das Verzeichnis home meinst, welches im aktuellen Verzeichnis liegt, nein. Keiner traut es sich dir direkt zu sagen, aber wir wissen anscheinend besser was du meinst, als du selbst 🙂 .

    und nochwas wenn ich ne string variable übergebe krieg ich nen fehler.

    Der fstream nimmt ja auch einen const char* und keinen String als Parameter. Guck dir mal an was string::c_str() macht.



  • ich bin auch neu in linux also nicht schlimm. 😃

    warum geht das mit der variable denn im visual studio??


  • Mod

    darman96 schrieb:

    warum geht das mit der variable denn im visual studio??

    Also theoretisch darf eine Implementierung die Standardfunktionen auch überladen. Kann ich mir in diesem Fall aber nicht vorstellen und auch die Dokumentation in der MSDN sagt nichts dazu. Solange ich nicht aus zuverlässiger Quelle etwas anderes höre, schiebe ich das mal auf einen Irrtum deinerseits.



  • Nein ich hab das auf windows bis jetzt immer mit variablen gemacht.



  • darman96 schrieb:

    Nein ich hab das auf windows bis jetzt immer mit variablen gemacht.

    Aber wohl eher nicht mit einer vom Typ std::string, oder du verwendest einen c++11 kompatiblen Modus (dasollte das eigentlich gehen). Das könntest du aber auch auf Linux machen (hab den Schalter grade nicht im Kopf).



  • doch definitiv mit einer string variable und ob vs2010 c++11 unterstützt weiß ich nicht. hab auf jedenfall nichts eingestellt.

    ich hab da noch ne frage zu linux:
    wie krieg ich die openGL libs zum laufen??
    ich bekomm immer diese fehlermeldung:

    /home/erik/Dokumente/C++/OpenGL/objModelLoader/main.cpp|107|Fehler: »GL_TRIANGLE« wurde in diesem Gültigkeitsbereich nicht definiert|
    

    Edit:
    hab auch freeglut installiert und die header dateien includiert.
    und die libs
    mit -lGL und -lglut so stands im netz



  • keiner ne idee?



  • Dir fehlt der passende Header.



  • nein ich sagte doch ich hab die header.
    unter windows funktioniert der code mit den selben headern

    Edit: problem gelöst es heißt GL_TRIANGLES und nicht GL_TRIANGLE 😃

    danke für die Hilfe

    Gruß darman96


Anmelden zum Antworten