У меня есть проблема, которую я не могу исправить самостоятельно.назначение c_str() в строку
string filenameRaw;
filenameRaw= argv[1];
function(filenameRaw.c_str(),...);
function(const char* rawDataFile,const char* targetfieldFile,const char* resultFile,const char* filename)
...
this->IOPaths.rawData=rawDataFile;
...
работает очень хорошо. Теперь я пытаюсь поместить другую строку в переменную IOPaths.rawData ...
function(const char* rawDataFile,const char* targetfieldFile,const char* resultFile,const char* filename)
...
string filenameRaw;
filenameRaw=reader.Get("paths", "rawData", "UNKNOWN")
...
const char* rawDataFile1=filenameRaw.c_str();
cout << "Compare: " << strcmp(rawDataFile,rawDataFile1) <<endl;
...
this->IOPaths.rawData=rawDataFile1;
Это не работает. Позже в моей программе я получаю ошибки с именем файла. Strcmp определенно дает 0, поэтому строки должны быть равны. Кто-нибудь имеет представление, что я делаю неправильно?
Возможный дубликат [StringStream/c \ _str() коррупция в C++] (http://stackoverflow.com/questions/10642253/stringstream-c-str-corruption-in-c) – dasblinkenlight