【发布时间】:2012-09-06 02:30:29
【问题描述】:
对于下面的代码,是否可以将结果输出到字符串而不是wofstream?谢谢你!
wstring w = L"test";
std::wofstream ofs("test.txt");
std::locale utf8_locale(std::locale(), new boost::archive::detail::utf8_codecvt_facet());
ofs.imbue(utf8_locale);
std::copy(w.begin(),w.end(),
std::ostream_iterator<wchar_t, wchar_t>(ofs));
【问题讨论】:
-
嗨,克里斯,你能用一些代码进一步详细说明吗?我不熟悉C++
-
std::wostringstream派生自与std::wofstream相同的类,因此仅替换使用的变量类型应该仍然与您使用的其他函数兼容。不过,Stringstreams 维护的是字符串而不是文件(通过str()访问),这应该可以满足您的需求。 -
像 std::string 输出 = woss.str();?再次抱歉这个愚蠢的问题,你怎么知道 wostringstream 和 wofstream 是从同一个类派生的?
-
我现在明白了。这也很有帮助:en.cppreference.com/w/cpp/io
标签: c++ string wstring wofstream