【发布时间】:2016-08-25 15:07:13
【问题描述】:
我有一个函数 Analyze_,它返回一个包含一些信息的 std::string,我 虽然希望它以 LPCSTR 形式出现。 当我像这样使用 c_str() 时,它可以工作并存储我的信息:
std::string s = myClassInstance.Analyze_();
LPCSTR l = s.c_str();
但是当我写得更短时,如下所示,我得到一系列'Ỳ's:
LPCSTR l = myClassInstance.Analyze_().c_str();
是在 Analyze_() 之前调用 c_str() 吗?我想这应该是不可能的 因为它是一个函数,而不是一个字符串。
我尝试了其他解决方案,例如直接从生成字符串的字符串流转换并返回,如下所示:
std::stringstream ss;
ss << "Bla blub...\n";
return ss.str().c_str();
但我也有同样的问题。 为什么会这样?
【问题讨论】:
标签: c++ visual-c++