对于以下代码,是否可以将结果输出到字符串而不是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));
答案 0 :(得分:2)
输出字符串流是一种C ++功能,其行为类似于输出文件流,因为它们都从std::ostream
继承,这意味着您可以在两者中使用大部分相同的功能。但是,字符串流对字符串而不是文件进行操作。
这对您来说意味着您需要做的就是(因为您没有使用任何wofstream
特定的函数)将ofs
的类型更改为字符串流:
#include <sstream>
std::wostringstream oss;
现在我无法构建语言环境(我还没有使用过那些),但是对它们进行评论确实产生了正确的结果(see this test)。如您所见,您可以通过字符串流的str()
函数访问字符串。