我有一个问题,我无法自己修复。将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