【发布时间】:2011-03-31 14:26:30
【问题描述】:
我对 C++ STL 很陌生,所以这可能是微不足道的。我有一个 ostream 变量,其中包含一些文本。
ostream* pout;
(*pout) << "Some Text";
有没有办法提取流并将其存储在char* 类型的字符串中?
【问题讨论】:
我对 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::ostream& out,因为std::ostream是不可复制的。
std::ostringstream stream;
stream << "Some Text";
std::string str = stream.str();
const char* chr = str.c_str();
我在回答这个question 时解释了发生了什么,这是我在一小时前写的。
【讨论】:
#include <string> 和 #include <sstream>
return (oss << value).str(); 则不会。
std::ostringstream os;
os<<"Hello world";
std::string s=os.str();
const char *p = s.c_str();
【讨论】:
std::ostringstream,而是关于std::ostream。 std::ostream 没有方法 .str()。