我有一個問題,我無法自己修復。將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