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

ber*_*jan 0 c++ crt string-formatting

我创建了一个函数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);
}
Run Code Online (Sandbox Code Playgroud)

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

Wug*_*Wug 6

你会用一个std::ostringstream.

#include <sstream>
using namespace std;

...
ostringstream out;
dump_text(out);
string value = out.str();
...
Run Code Online (Sandbox Code Playgroud)