我对C++ STL非常陌生,所以这可能很琐碎。我有一个包含一些文本的ostream
变量。
ostream* pout;
(*pout) << "Some Text";
有没有一种方法可以提取流并将其存储在类型为char*
的字符串中?
这个问题涉及将ostream
转换为字符串,而不是将ostringstream
转换为字符串。
对于那些希望获得有关ostream
的实际问题答案的人,请尝试以下方法:
void someFunc(std::ostream out)
{
std::stringstream ss;
ss << out.rdbuf();
std::string myString = ss.str();
}
std::ostringstream stream;
stream << "Some Text";
std::string str = stream.str();
const char* chr = str.c_str();
我在不到一个小时前撰写的问题的答案中解释了正在发生的事情。
#include <string>
和#include <sstream>
。 - Prasoon Sauravoss << value; return oss.str();
这样的代码可以编译通过,而return (oss << value).str();
则不能。 - ArtOfWarfare尝试使用 std::ostringstream
。
std::ostringstream os;
os<<"Hello world";
std::string s=os.str();
const char *p = s.c_str();
std::ostringstream
,而在于std::ostream
。std::ostream
没有.str()
方法。 - Marc Dirven
std::ostream& out
,因为std::ostream
是不可复制的。 - Brandon