나는 스스로 해결할 수없는 문제가 있습니다.문자열에 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;
더 이상 작동하지 않습니다. 나중에 내 programm에서 파일 이름에 오류가 발생합니다. strcmp는 분명히 0을 제공하므로 문자열은 동일해야합니다. 누구든지 내가 뭘 잘못하고 있는지 생각해?
가능한 [C++의 [StringStream/c \ _str() 손상] (http://stackoverflow.com/questions/10642253/stringstream-c-str-corruption-in-c) – dasblinkenlight