我无法将int
转换为c字符串(const char*
):
int filenameIndex = 1;
stringstream temp_str;
temp_str<<(fileNameIndex);
const char* cstr2 = temp_str.str().c_str();
没有错误,但是
cstr2
没有得到期望的值。它用一些地址初始化。有什么问题,我该如何解决?
最佳答案
temp_str.str()
返回一个临时对象,该对象在语句末尾被销毁。这样,由cstr2
指向的地址将无效。
而是使用:
int filenameIndex = 1;
stringstream temp_str;
temp_str<<(filenameIndex);
std::string str = temp_str.str();
const char* cstr2 = str.c_str();
DEMO