Dateien mit variablen Namen öffnen



  • Hiho,
    Ich habe mehre Dateien die ganz einfache Namen haben ( 1.gmp;2.gmp;3.gmp usw. ).
    Diese möchte ich nun auslesen, doch bekomme ich schon beim Öffnen Probleme.
    Lesefunktion:

    void Map::loadmap(int mapid)
    {
    	std::fstream file;
    	std::stringstream Str;
    	Str << mapid;
    	std::string s(Str.str());
    	s = "Maps\\" + s;
    	s += ".gmp";
    	file.open(s);
    	file.close();
    }
    

    Jedoch mag mein Compiler ( MVC++ ) meine Idee nicht und ich bekomme immer die Fehlermeldung;

    error C2664: 'void std::basic_fstream<_Elem,_Traits>::open(const wchar_t *,std::ios_base::openmode,int)': Konvertierung des Parameters 1 von 'std::string' in 'const wchar_t *' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden

    Bedeutet das das die Funktion open nicht mit strings geht?



  • Probieres mal mit:

    file.open(s.c_str ());
    


  • richtig geht nicht direkt mit std::string. musst noch c_str() von std::string aufrufen



  • Danke 🙂
    Funktioniert.


Anmelden zum Antworten