#c #wofstream
#c #wofstream
Вопрос:
Мой 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. Что такое объявление my_file ?
2. Вы пробовали очищать и закрывать после того, как все напишете?
wofstream
3. ага. Боже, почему это так сложно… Я буквально занимаюсь этой проблемой уже несколько недель. Недели и недели.
4. Какой тип раздела реестра вы пытаетесь получить?
5. Можете ли вы дать нам полную программу, которая иллюстрирует проблему.
Ответ №1:
В вашем потоке устанавливается бэдбит (или другой бит ошибки), что делает его бесполезным для любой последующей операции. Вероятно, это находится на границе поведения, определенного реализацией (особенно для wchar_t
s). Это просто не будет работать так, как вы этого хотите.
Наибольшая вероятность ошибки заключается в том, что символы не помещаются в один 2-байтовый wchar_t
, что приводит к блокировке STL Microsoft.