سلام.
برای اینکار مجبور به تبدیل wstring به string و برعکس انجام بدید بقیه موارد هم تو سایت OpenCV توضیح داده شده.
wstring s2ws(const std::string& str)
{
typedef std::codecvt_utf8<wchar_t> convert_typeX;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.from_bytes(str);
}
string ws2s(const std::wstring& wstr)
{
typedef std::codecvt_utf8<wchar_t> convert_typeX;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.to_bytes(wstr);
}
const std::string file_name = R"(d:\test.yml)";
cv::FileStorage fs(file_name, cv::FileStorage::WRITE);
int label_count = 10;
fs << "label_count" << label_count;
for (int i = 0; i < label_count; i++) {
string key = "label" + std::to_string(i);
wstring value = L" ";
value[0] = 1776 + i;
fs << key << ws2s( value);
}
fs.release();
cv::FileStorage fs2(file_name, cv::FileStorage::READ);
int label_count2;
fs2["label_count"] >> label_count2;
for (int i = 0; i < label_count2; i++) {
string key = "label" + std::to_string(i);
string value;
fs2[key] >> value;
wstring s = s2ws(value);
wcout << s << endl;
}