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



我做了一个函数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 - 方法将文本分配给字符串的问题的更好解决方案?

你会使用std::ostringstream .

#include <sstream>
using namespace std;
...
ostringstream out;
dump_text(out);
string value = out.str();
...

最新更新