使用std :: ostream方法将格式化文本输出到std :: string对象

时间:2012-06-21 14:47:15

标签: c++ string-formatting crt

我创建了一个函数dump_text(std :: ostream&),它在标准输出流中转储一些文本。文本转到文件或用户控制台。现在,我希望该文本最终出现在标准字符串对象中(请参阅下一个代码示例)。

void dump_text(std::ostream &p_ostream)
{
    p_ostream << "text that must endup in string object";
}

class my_class
{
    public:
    my_class(std::string &);
    operator std::ostream & ();
};

int main(int, char **)
{
    std::string l;
    my_class k(l);

    dump_text(k);
}

1)CRT库中是否有'my_class'的标准实现? 2)有没有人知道使用std :: ostream - 方法将文本分配给字符串的问题的更好解决方案?

1 个答案:

答案 0 :(得分:6)

您可以使用std::ostringstream

#include <sstream>
using namespace std;

...
ostringstream out;
dump_text(out);
string value = out.str();
...