#include <iostream> #include <fstream> #include <string> using namespace std; int main() { locale system(""); locale::global(system); wcin.imbue(system); wstring data; getline(wcin,data); wcout.imbue(system); wcout << data << L" length=" << data.length() << endl; locale utfFile("en_US.UTF-8"); wofstream file("my_utf_file.txt"); file.imbue(utfFile); file << data; file << endl; file.close(); return 0; }
Это ваша система. Имена локалей не являются частью стандарта C ++, поэтому "en_US.UTF-8" не является универсально допустимым. Даже не уверен, что локаль, похожая на это, существует.
"en_US.UTF-8"
Не будет работать во встроенной системе без файловой системы.
Или, конечно, без установленной локали.