wofstream усекается при широких данных, полученных из реестра - PullRequest
0 голосов
/ 26 октября 2011

Мой wofstream усекается при попытке записи широких символов в файл.

my_file << L"something";

wstring foo = //get a value from the registry ..

// foo contains 您好

my_file << foo;

my_file << "stuff that will never be seen";

1 Ответ

0 голосов
/ 27 октября 2011

В вашем потоке устанавливается бит (или другой бит ошибки), что впоследствии делает его бесполезным для какой-либо операции.Это, вероятно, находится на границе определенного поведения реализации (особенно для wchar_t s).Это просто не сработает так, как вы хотите.

Наибольшая вероятность ошибки заключается в том, что символы не помещаются в один 2-байтовый wchar_t, что делает удушение Microsoft STL.

...