Hallo, ich wollte meine Datei-Prozeduren ändern und <fstream> verwenden. Die Funktion ifstream.open( myfilepath, mode) öffnet die Datei nicht und die Variable 'filename' wird geleert, obwohl das gar nicht passieren dürfte. Als Modi-Parameter habe ich schon ziemlich viel ausprobiert, daran scheint es nicht zu liegen. Verwende ich statt der Variable 'myfilepath' einen String direkt im Code, funktioniert es. Was ist da los?
Code:
string CibFile::GetFileAsString( const char* filepath) { char* myfilepath = (char*)GetFileNameFromShellPath( filepath).c_str(); string out = ""; if ( !FileExists( myfilepath)) { cerr << "File does not exist: \""; cerr << myfilepath; cerr << "\" !! \n"; return out; } ifstream localfile; printf("try to open: %s \n", (const char*)myfilepath, std::out); localfile.open( (const char*)myfilepath); if( localfile.is_open()) { string line; while( !localfile.eof()) { getline ( localfile, line); out.append( line); } localfile.close(); } else printf( "no success! \n"); return out; }
Comment