Как я могу прочитать текстовый файл, содержащий Unicode, в указатель wchar_t, используя wifstream?
Я пытаюсь прочитать символы Юникода из текстового файла в массив указателей wchar_t, используя wifstream. Вот фрагмент кода:
locale::global(std::locale("en_US.UTF-8"));
std::wifstream inputFile("gsmCharacterSet.txt", std::ifstream::binary | std::ifstream::ate);
int length = inputFile.tellg();
inputFile.seekg(0,inputFile.beg);
wchar_t *charArray = new wchar_t[length];
inputFile.read(charArray,length);
Это не работает. Возвращенная длина равна 252, что является правильным размером файла в байтах. Тем не менее, массив остается пустым.
Следующее условие возвращает true:
if ( inputFile.peek() == std::wifstream::traits_type::eof() )
cout << "File is empty";
Я компилирую программу на Linux, используя g++. Что я делаю неправильно? Спасибо за помощь.